Awk

更改 uniq -c 命令的格式

  • September 20, 2019

我想從文件中獲取唯一單詞及其計數。當我執行以下命令時,

sort words.txt | uniq -c



  2 america
  4 and
  1 england
  1 file
  1 for
  1 place

但我想要以下格式的輸出

america,2
and,4
england,1
file,1
for,1
place,1

我的輸入文件大約是 30-40Gb。那麼以這種格式列印輸出的最佳方法是什麼?

awk您可以在命令末尾添加一行。例如,

sort words.txt | uniq -c | awk '{print $2","$1}'

基本上,它採用第二列並將其放在第一列之前,同時用逗號分隔。我不知道在 30-40Gb 文件上執行它有多貴。

我們可以用 awk 本身做…

試試下面,

awk '{j[$0]++} END {for (i in j) print i","j[i]}' words.txt

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