在 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
我想知道哪些行在文本文件中重复了 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