Usando awk
:
$ awk -v RS='PATTERN FOUND' 'NF{print NF}' infile
3
2
Ou se o seu rows
for realmente um conjunto de frases, você pode fazer:
$ awk -v RS='PATTERN FOUND' -F'\n' 'NF{print NF-2}' infile >output
Acima de awk
no arquivo de entrada de amostra abaixo:
PATTERN FOUND
rows
rows
rows
PATTERN FOUND
rows
rows
Here PATTERN FOUND :
zero first
second
fourth fifth sixth and last
Irá dar-lhe o resultado:
3
2
4
Para se livrar das linhas vazias e não contá-las:
awk -v RS='PATTERN FOUND' -F'(\n)+' 'NF{print NF-2}' infile
e para se livrar das linhas vazias e aquelas que contêm apenas espaços em branco (Tabs ou Spaces):
awk -v RS='PATTERN FOUND' -F'(\n|^[ \t]*$)+' 'NF{print NF-2}' infile