GNU/Linux >> Tutoriales Linux >  >> Linux

Obtenga la primera línea de la salida de un comando de shell

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

Linux
  1. ¿Cómo asignar la salida de un comando a una variable de shell?

  2. ¿Almacenar la salida del comando en la variable de Shell?

  3. ¿Cuál es la diferencia de obtener salida de comando usando `command` y $(command) en Shell?

  4. ¿Cómo conservar los saltos de línea al almacenar la salida del comando en una variable?

  5. Agregar salto de línea a la salida del comando

Cómo redirigir la salida del comando de shell

Obtenga detalles del hardware y del sistema Linux en la línea de comandos

¿Cómo leer argumentos de línea de comando en scripts de Shell?

Parámetros de línea de comando en scripts de shell

Omitir la primera línea de cualquier salida de comando de Linux

obtenga los primeros 5 caracteres de cada línea en el script de shell