Text-Processing
計算列中連續相同的欄位數
我的輸入文件如下所示:
bio, john chem, john lang, john math, dina math, john math, matt lang, matt
我想只計算一次名稱連續相同的行。對於這個輸入,我想得到:
john 2 dina 1 matt 1
有什麼方法可以使用 sed 或 awk 做到這一點?我完全迷失在這裡。
將前一個值儲存在變數中,如果值不同,則遞增關聯數組中的數字。
awk -F ', ' '{if ($2 != p) { c[$2]++ } p=$2} END { for (k in c) {print k, c[k]} }'
如果你想要一些快速的’n’dirty,你可以使用
uniq
去重複連續條目,然後排序+計數重複:$ cut -d, -f2 file | uniq | sort | uniq -c 1 dina 2 john 1 matt