$ cat file{1,2,3} | sort -k1,1 -k2n | uniq -c
2 key1: 1
1 key1: 20
1 key2: 2
1 key2: 23
1 key2: 223
1 key3: 3
1 key3: 23
1 key3: 213
1 key4: 0
2 key4: 4
會給你key: 1
出現兩次及key1: 20
存在過。 pipe to
... | awk '$1>1'
2 key1: 1
2 key4: 4
給你兩個鍵有重複的值。或全部awk
$ awk '{a[$0]++}
END{for(k in a) if(a[k]>1) print a[k], k}' file{1,2,3}
2 key1: 1
2 key4: 4
您可以指定任何方式的bash輸入可擴展到文件列表,例如dir/*.txt
會做。
好吧,問題改變了!現在,這是你想要
$ cat file{1,2,3} | sort -k1,1 -k2n | uniq -c |
awk '{print $2}'| uniq -c |
awk 'BEGIN{print "keyword","count"} {print $2,$1}'
keyword count
key1: 2
key2: 3
key3: 3
key4: 2
,或者在一個單一的awk
$ awk '{a[$0]++}
END{print "keyname", "count";
for(k in a) {split(k,b," ") c[b[1]]++}
for(k in c) {print k, c[k]}}' file{1,2,3}
keyname count
key3: 3
key4: 2
key1: 2
key2: 3
例如,我想知道key1有兩個不同的值(1和20),也想知道值1,有多少文件共享此值(在本例中,它是2,因爲文件1並且文件2共享相同的值),而文件#3具有不同的值20 –
請將您希望的輸出樣本輸入添加到您的問題中。 – Cyrus