GNU/Linux >> Tutoriales Linux >  >> Linux

3 trucos para obtener la salida de múltiples comandos en la misma fila

Tres trucos para obtener la salida de dos comandos en un unica fila. Normalmente, las salidas de dos comandos siempre estarán separadas por un retorno de carro en la terminal de Linux.

Uno de los principales obstáculos en la creación de secuencias de comandos es lograr que sus resultados estén bien formateados de acuerdo con los requisitos. En Linux/Unix, cada comando muestra su salida siempre en una nueva línea. Este es un obstáculo en muchas situaciones en las que el codificador quiere dos salidas, dos términos, dos variables en una sola fila, por ejemplo, en formato CSV. En esta publicación, veremos cómo presentar la salida de dos o más comandos en una sola fila.

Lea también:Publicaciones relacionadas con secuencias de comandos

Normalmente, cuando ejecutamos más de un comando, mostrarán resultados en diferentes filas:

# date ; hostname
Sat Dec 24 01:35:50 EDT 2016
testsrv2

# echo text1; echo text2; echo text3
text1
text2
text3

En el ejemplo anterior, los comandos tienen salidas por fila. Vamos a lograr todas las salidas en una fila usando los siguientes trucos.

Truco 1:

Uso de la función de traducción. Como dije antes, cada salida de comando va acompañada de un retorno de carro. Estaremos traduciendo el retorno de carro con el carácter de tabulación, por lo tanto, obtendremos dos o más comandos de salida en una sola fila.

# (date; hostname) |tr '\n' '\t'
Sat Dec 24 01:36:22 EDT 2016    testsrv2

# (echo text1; echo text2; echo text3) |tr '\n' '\t'
text1   text2   text3

Omitiendo las salidas para traducir la función, logramos una salida de una sola fila. Aquí instruimos a tr función para traducir todos los retornos de carro (\n ) a la pestaña (\t ).

Si desea generar en formato CSV (valores separados por comas), reemplace la pestaña con una coma y lo obtendrá.

# (date; hostname) |tr '\n' ','
Sat Dec 24 01:43:09 EDT 2016,testsrv2,

# (echo text1; echo text2; echo text3) |tr '\n' ','
text1,text2,text3,

Puede observar una coma final que muestra que cada salida de comando termina con \n y, por lo tanto, se reemplaza por ,

Truco 2:

Al definir cada salida de comando como una variable. Aquí almacenaremos la salida de cada comando en una variable y luego repetiremos esas variables en una sola línea.

# mydate=`date`

# myname=`hostname`

# echo $myname $mydate
testsrv2 Sat Dec 24 01:46:04 EDT 2016

Aquí almacenamos la salida del comando de fecha y nombre de host en mydate y myname variables En el último comando, hicimos eco de ambas variables con un espacio entre ellas. ¡Tenga en cuenta que la salida de los comandos se puede almacenar en una variable ejecutando el comando usando acentos graves (ejecución en línea)!

Truco 3:

Haciendo eco de los resultados de ejecución en línea. Ejecución en línea, es decir, usar acentos graves para ejecutar comandos dentro de otro comando. Usaremos este truco para hacer eco de las salidas en una sola fila.

# echo "`date` `hostname`"
Sat Dec 24 01:50:36 EDT 2016 testsrv2

En el ejemplo anterior, primero, ejecutamos comandos y obtuvimos resultados. Pero esas salidas se introducen en el comando de eco. Por lo tanto, el comando echo los coloca en una sola fila.

# echo "`echo text1` `echo text2` `echo text3`"
text1 text2 text3

Tome nota de que ejecutamos cada comando en comillas posteriores separadas.


Linux
  1. ¿Salida del comando "último"?

  2. Obtener el complemento del resultado de un comando Ls?

  3. CentOS/RHEL:cómo ver los comandos ejecutados en la salida del comando del historial de yum

  4. CentOS/RHEL:cómo obtener la fecha y la hora del comando ejecutado en la salida del comando del historial

  5. ¿Cómo agregar la salida a un archivo?

Trucos de formato para el comando de fecha de Linux

Cómo cambiar el color de salida de 'Echo' en Linux

5 de los comandos más aburridos de Linux

Ejemplos de comandos echo de Linux

Obtenga los últimos 4 caracteres de salida desde la salida estándar

Agregar salto de línea a la salida del comando