【发布时间】:2016-07-11 21:35:38
【问题描述】:
我正在尝试编写一个 awk 脚本来折叠相同的行(由几列定义)并保留具有最小值的整行。
这是我的示例输入:
A 20 30 Boston US 3 tempCity top
A 20 30 London UK 2 coldCity top
A 20 30 Singapore SG 4 hotCity top
B 10 20 Tokyo JP 3 coldCity mid
如果第一列、第二列、第三列和第八列相同,我想只保留第六列最小值的一行。这是我的预期输出:
A 20 30 London UK 2 coldCity top
B 10 20 Tokyo JP 3 coldCity mid
我尝试过写这段代码:
awk -v OFS='\t' '{par=$1 OFS $2 OFS $3 OFS $8} $6<a[par]{a[par]=(par in a)?a[par]$0:$0} END {for (i in a) print i, a[i]}' cityList.txt
但我只得到以下输出:
A 20 30 top
B 10 20 mid
我是 awk 的新手,非常感谢任何帮助!提前致谢!
【问题讨论】: