如何打印具有重复(x2)值的行?
例如
01 02 03
01 01 03
01 01 01 03
在这三行中,只有第二行是正确的。
因此,现在让我们说我要查找发生值x3的行。
在这种情况下,第3行是正确的。
用awk
awk -v nb=3 '{for(i=1;i<=NF;i++)if(++a[$i]>nb){print;next}}' infile
++ a [$ i]行的每个字段上的for(i = 1; i <= NF; i ++)获取关联数组a中的每个字段,并在每次看到具有相同值的字段时对其进行递增。
if(++ a [$ i]> nb)如果该值大于nb
{print; next},则打印该行并跳至下一行
只显示 nb
awk -v nb=3 '
{
max = 0
delete a
for ( i=1 ; i<=NF ; i++ )
++a[$i]
for( j in a )
max = a[j]>max ? a[j] : max
if ( max == nb )
print
}' infile
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句