【发布时间】:2015-01-27 13:54:03
【问题描述】:
我目前正在使用 awk 来复制函数 uniq -c,并以逗号作为分隔符。
这给出了正确的输出:
$ cut --delimiter=, -s -f2 wordlist.csv | awk '{ cnts[$0] += 1 } END { for (v in cnts) print cnts[v], v}' OFS="," | head
2,laecherlichen
111,doctrine
1,cremonas
1,embedding
1,conincks
2,similiter
1,mitgesellen
1,hysnelement
1,geringem
1,aquarian
但是,如果我将 awk 命令 print cnts[v], v 反转为 print v, cnts[v],我会得到一个混乱的输出:
$ cut --delimiter=, -s -f2 wordlist.csv | awk '{ cnts[$0] += 1 } END { for (v in cnts) print v, cnts[v]}' OFS="," | head
,2echerlichen
,111rine
,1emonas
,1bedding
,1nincks
,2militer
,1tgesellen
,1snelement
,1ringem
,1uarian
我对这个输出感到困惑,因为我期待像 word,1 这样的输出。有什么问题?
【问题讨论】: