打印一个字符串(任何字符串)重复3次的行 - sed

时间:2015-02-05 00:19:19

标签: linux bash unix awk sed

F1:

abc abc gh abc
abcabc abc
 ab ab cd ab xx ab
ababab cc ababab
abab abab cd abab

P1 F1之后

输出:

abc abc gh abc
 ab ab cd ab xx ab
abab abab cd abab

3 个答案:

答案 0 :(得分:1)

这个awk单行可能会有所帮助:

awk '{delete a;for(i=1;i<=NF;i++){a[$i]++;if(a[$i]>2){print;break}}}' file

答案 1 :(得分:0)

像这样使用awk

awk '{for(i=1;i<=NF;++i){for(var=NF;var>=1;--var){if($var==$i){++mode;}};if(mode>=3){print $0;mode=0;next}else{mode=0;continue}}}'  my_file

答案 2 :(得分:0)

的Perl:

$ perl -lane '%c=(); for $w (@F) {$c{$w}++}; @a=sort {$a<=>$b} values %c; print $_ if $a[-1]>2 ' file
abc abc gh abc
 ab ab cd ab xx ab
abab abab cd abab

或者

$ perl -lane '%c=(); for $w (@F) {$c{$w}++; if ($c{$w}>2){print; last}};' file