在 Bash 中使用 awk 获取重复行

Getting repeated lines with awk in Bash

我想知道哪些行在文本文件中重复了 X 次,我正在使用 awk 但我在命令中看到 awk,不起作用以相同字符或单词开头的行。即不单独识别整行。

使用此命令我尝试获取重复 3 次的行:

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

希望这就是您所需要的:

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

递增数组 a 并将行 ([=12=]) 作为每一行的索引。最后,对于每个索引 ([=12=]),检查计数 (a[i],即原始 a[[=15=]]) 是否等于 3。如果是这样,打印该行(i,这是原始的 [=12=] / 行)。希望清楚。

此 returns 行重复了 3 次,但在每个重复 3 次的行的开头添加了一个 space:

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