Isso não é muito simples de fazer se você estiver copiando e colando os comandos no emulador de terminal. O problema aqui é que o terminal (que lida com entrada e exibição de texto) é um processo distinto do shell (que imprime seu prompt e processa a linha de comando), e o terminal não pode realmente saber o significado do texto que você está colando. Portanto, não pode esperar que o comando anterior seja concluído e que o shell solicite novamente.
O que você poderia fazer seria usar set -v
ou set -x
para fazer com que o shell imprima os comandos à medida que eles são executados ou, nesse caso específico, grave um loop curto para executar o grep
s:
for pattern in 'type_of_record_new creating' \
'type_of_record_modification found 1' \
'type_of_record_modification found 0' \
'type_of_record_inactivation found 1'
do
printf "%s:\n%10d" "$pattern"
grep -c -e "$pattern" type_of_record.txt
done
Isso daria uma saída como essa
type_of_record_new creating: 469005
type_of_record_modification found 1: 9999
embora o formato exato possa ser modificado. Se você quiser os números em linhas separadas e alinhados à direita, você pode usar a substituição de comandos e printf %d
para o número de linhas:
for pattern in ...
do
printf "%s:\n%8d\n" "$pattern" "$(grep -c -e "$pattern" type_of_record.txt)"
done