檔案中 第一欄為 Key, 第二欄為 Value, 要透過 Bash shell script 來計算列出 Key 與 最大值.
利用 AWK 與 SORT 抓取欄位最大值
檔案內容(2欄):
- cat a.txt # 內容如下
aaa 1 bbb 5 aaa 20 bbb 70 aaa 3 bbb 7
- awk '{print $2" "$1}' a.txt | sort -k 2 -k 1rn | uniq -f 1 |awk '{print $2" "$1}' # 結果如下
aaa 20 bbb 70
檔案內容(3欄):
- cat a.txt # 內容如下
h1 aaa 1 h2 bbb 5 h1 aaa 20 h2 bbb 70 h2 aaa 3 h3 bbb 7
- awk '{print $3" "$2" "$1}' a.txt | sort -k 2 -k 1rn | uniq -f 1 |awk '{print $3" "$2" "$1}' # 結果如下
h1 aaa 20 h2 aaa 3 h2 bbb 70 h3 bbb 7