напечатайте строки, которые строка (любая строка) повторяется 3 раза - sed

132
7

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

спросил(а) 2021-01-25T19:15:35+03:00 5 месяцев назад
1
Решение
63

этот awk one-liner может помочь:

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

ответил(а) 2021-01-25T19:15:35+03:00 5 месяцев назад
45

Использование 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

ответил(а) 2021-01-25T19:15:35+03:00 5 месяцев назад
45

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

ответил(а) 2021-01-25T19:15:35+03:00 5 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема