我想寫一個awk腳本摺疊相同的行(由幾列定義),並保持具有最小值的整個行。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一個新手,所以任何幫助非常感謝!提前致謝!
你好Tom!非常感謝!它解決了我的問題,我也學到了新的東西。 – kaka01