Se eu entendi corretamente:
- você quer contar quantas vezes há "P2" em qualquer lugar dentro do 6º campo das linhas 4,55 e 77 de alguns arquivos (chamados * h3)?
Você pode fazer isso com 1 awk:
awk '
( FNR==4 || FNR==55 || FNR==77 ) {
if ( $6 ~ "P2" ) { occurence++ }
}
END {
printf "There was: %d P2 ", occurence
printf " among the 6th field on lines 4,55 or 77 of the *h3 files\n"
}' *h3
Observação: altere $6 ~ "P2"
para $6 == "P2"
se você quiser uma correspondência exata (em vez de um grep, como você usou em seu próprio exemplo, para que também corresponda a: somethingP2otherthing
e suas variantes)
FNR = Número de Registros do Arquivo = número de linhas no arquivo atual (isto é, começa novamente em 1 na primeira linha de cada arquivo) (Arquivo atual cujo nome também pode ser conhecido pela variável interna: FILENAME)
(NR = aqui não funcionaria, pois é o número (total) ou registros lidos desde o início (não desde o início do arquivo atual))