Sort
根據不同的欄位和值進行排序
我有以下數據:
AD12 Ar.1 352 AD12 Ar.7 495 AD12 Ar.8 491 AD12 Ar.6 495 AD12 Ar.5 495 AD12 Ar.9 491 AD13 Ar2.1 495
我想根據第三列為第一列中的唯一 id 選擇具有最高值的行,但為第一列中的每個 id 保留最高值的重複項,例如:
AD12 Ar.7 495 AD12 Ar.6 495 AD12 Ar.5 495 AD13 Ar2.1 495
我不知道該怎麼做,我嘗試了不同的排序命令,例如:sort -r -k3,3 -k1,1,但沒有奏效。有什麼建議麼?
sort
+**awk
**解決方案:sort -k1,1 -k3,3nr <file | awk '!a[$1]{ a[$1]=$3 }$3==a[$1]'
sort -k1,1 -k3,3nr
- 按第一個欄位(正常排序)和第三個欄位(數字倒序)對行進行排序!a[$1]{ a[$1]=$3 }$3==a[$1]
- 對於每個唯一id$1
,檢查目前記錄是否具有相同的最大值$3
輸出:
AD12 Ar.5 495 AD12 Ar.6 495 AD12 Ar.7 495 AD13 Ar2.1 495