Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Bash中使用awk获取重复行_Bash_Shell_Awk_Text Processing - Fatal编程技术网

在Bash中使用awk获取重复行

在Bash中使用awk获取重复行,bash,shell,awk,text-processing,Bash,Shell,Awk,Text Processing,我试图知道哪些行在文本文件中重复X次,我使用的是awk,但我在命令中看到awk,而不是以相同字符或单词开头的行。也就是说,不单独识别整行 使用此命令,我尝试获取重复3次的行: awk '++A[$1]==3' ./textfile > ./log 这正是您所需要的: awk '{a[$0]++}END{for(i in a){if(a[i]==3)print i}}' File 以行($0)作为每行的索引,递增数组a。最后,对于每个索引($0),检查计数(a[i],即原始的a[$0]

我试图知道哪些行在文本文件中重复X次,我使用的是
awk
,但我在命令中看到
awk
,而不是以相同字符或单词开头的行。也就是说,不单独识别整行

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

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

这正是您所需要的:

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

以行(
$0
)作为每行的索引,递增数组
a
。最后,对于每个索引(
$0
),检查计数(
a[i]
,即原始的
a[$0]
)是否等于
3
。如果是,请打印该行(
i
,它是原始的
$0
/line)。希望清楚。

这将返回重复3次的行,但在每重复3次的行的开头添加一个空格:

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

您使用的是行的第一个字段
$1
。如果需要整行代码,请使用
$0
。此外,这将在文件中至少有三个副本的任何行上触发,而不是仅在文件中有三个副本。