Sort

如何對文件中每個日期的行數進行排序?

  • January 3, 2018

我有一個這樣的文件:

$ more messages
Jan  2 random text
Jan  2 random text
Jan  3 random text
Jan  2 random text
Jan  3 random text
Jan  3 random text
Jan  3 random text

我想擁有這個,使用sort

Jan  2 : 3
Jan  3 : 4

您可以使用cut拆分您感興趣的字元,然後sort計算uniq -c不同日期出現的次數:

$ < input cut -c1-6 |sort |uniq -c
 3 Jan  2
 4 Jan  3

或者awk,如果您特別關注輸出格式,請使用:

$ awk '{a[substr($0, 1, 6)] += 1} END { for (x in a) printf "%s : %d\n", x, a[x] }' < x | sort
Jan  2 : 3
Jan  3 : 4

第一個塊使用關聯數組來計算每個日期出現的次數,結束 END 塊只列印出日期及其計數。sort之後的輸出,因為無法保證鍵從數組中出來的順序。

引用自:https://unix.stackexchange.com/questions/414488