我有一个包含产品列表的文件。每行看起来像这样:产品 - 件数 - 价格。我想按 pcs*price 值对其进行排序。
最佳答案
您确实应该考虑使用 Excel 或 libreoffice 等电子表格,一旦将文件导入到电子表格中,对列进行排序和相乘就非常容易了。
话虽如此:如果您熟悉 GNU Awk,这样的脚本就可以工作:
artcls.awk
BEGIN { # sort array numerically
PROCINFO["sorted_in"] = "@ind_num_asc"
FS=" - "
}
{ p = $2 * $3
if ( p in lines ) {
lines[ p ] = lines[ p ] "\n" $0
}
else lines[ p ] = $0
}
END { for( p in lines ) print lines[ p ], p }
您可以像这样使用它:awk -f artcls.awk your_file
。
关于linux - 按第二字段和第三字段的乘积排序(Linux),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36847886/