Eso no es demasiado simple de hacer si está copiando -y pegando los comandos en el emulador de terminal. El problema aquí es que la terminal (que maneja la entrada y visualización de texto )es un proceso distinto del shell (que imprime su solicitud y procesa la línea de comando ), y la terminal realmente no puede saber el significado del texto que está pegando. Por lo tanto, no puede esperar a que finalice el comando anterior y que el shell vuelva a solicitarlo.
Lo que podría hacer sería usar set -v
o set -x
para que el shell imprima los comandos a medida que los ejecuta, o en ese caso particular, escribir un bucle de shell corto para ejecutar 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
Eso daría un resultado como este
type_of_record_new creating: 469005
type_of_record_modification found 1: 9999
aunque, por supuesto, el formato exacto podría modificarse. Si desea los números en líneas separadas y alineados a la derecha, puede usar la sustitución de comandos y printf %d
para el número de líneas:
for pattern in...
do
printf "%s:\n%8d\n" "$pattern" "$(grep -c -e "$pattern" type_of_record.txt)"
done