2015-06-23 33 views
1

我想知道哪些是在文本文件中重複X次的線條,我使用的是awk但我在我的命令中看到了awk,不適用於線條從相同的字符或單詞開始。也就是說,不會單獨識別整條線。在Bash中使用awk重複線條

使用此命令我試圖讓那些重複3次行:

awk '++A[$1]==3' ./textfile > ./log 
+3

您正在使用'$ 1'這是該行的第一個字段。如果你想要整行你想使用'$ 0'。此外,這將觸發任何文件中至少有三個副本的行,而不僅僅是文件中的三個副本。 –

回答

3

這是你需要什麼希望:

awk '{a[$0]++}END{for(i in a){if(a[i]==3)print i}}' File 

增量陣列a與線($0)作爲每行的索引。最後,對於每個索引($0),檢查計數(a[i]是否爲原始a[$0])等於3。如果是這樣,打印行(i,這是最初的$0 /行)。希望很清楚。

+0

我明白了,謝謝! –

0

這將返回線路重複3次,但每3倍重複行的開頭添加一個空格:

sort ./textfile | uniq -c | awk '$1 == 3 {$1 = ""; print}' > ./log