Sí, esa es una forma de obtener la primera línea de salida de un comando.
Si el comando genera un error estándar que le gustaría capturar de la misma manera, debe redirigir el error estándar del comando al flujo de salida estándar:
utility 2>&1 | head -n 1
También hay muchas otras formas de capturar la primera línea, incluido sed 1q
(salir después de la primera línea), sed -n 1p
(solo imprime la primera línea, pero lee todo), awk 'FNR == 1'
(solo imprima la primera línea, pero de nuevo, lea todo) etc.
Yo usaría:
awk 'FNR <= 1' file_*.txt
Como señala @Kusalananda, hay muchas formas de capturar la primera línea en la línea de comando, pero usando el head -n 1
puede que no sea la mejor opción cuando se utilizan comodines, ya que imprimirá información adicional. Cambiando 'FNR == i'
a 'FNR <= i'
permite obtener las primeras i líneas.
Por ejemplo, si tiene n archivos llamados file_1.txt, ... file_n.txt:
awk 'FNR <= 1' file_*.txt
hello
...
bye
Pero con head
los comodines imprimen el nombre del archivo:
head -1 file_*.txt
==> file_1.csv <==
hello
...
==> file_n.csv <==
bye