Em perl
, substitua this
com si mesmo sem distinção entre maiúsculas e minúsculas e conte o número de substituições:
$ perl -ne 's/(this)/$1/ig == 3 && print' <<EOF
How to get This line that this word repeated 3 times in THIS line?
But not this line which is THIS word repeated 2 times.
And I will get This line with this here and This one
A test line with four this and This another THIS and last this
EOF
How to get This line that this word repeated 3 times in THIS line?
And I will get This line with this here and This one
Usando uma contagem de correspondências em vez disso:
perl -ne 'my $c = () = /this/ig; $c == 3 && print'
Se você tem o GNU awk, uma maneira muito simples:
gawk -F'this' -v IGNORECASE=1 'NF == 4'
O número de campos será um a mais que o número de separadores.