Resultado del comando de impresión lado a lado

11

Es posible imprimir el resultado de 2 comandos uno al lado del otro ...

Algo como esto

something `ls -l /a` `cat bla.txt`

resultado:

total 24                                                #while [ 1 = 1 ]; do
-rw-r--r-- 1 wolfy wolfy  194 Aug 13 08:50 c.in         #       echo "bla"
-rwxr-xr-x 1 wolfy wolfy   52 Sep 24 11:48 bla.sh       #done
-rwxr-xr-x 1 wolfy wolfy   38 Sep 24 11:48 bla1.sh      echo "bla"
-rwxr-xr-x 1 wolfy wolfy  147 Sep 24 11:54 ble.sh

Sé que prpuede hacer algo así con los archivos, pero no encontré una manera de hacer esto con los comandos ...

Wolfy
fuente

Respuestas:

13

Puedes usar la sustitución de procesos

pr -m <(cmd1) <(cmd2)

aunque en su caso, ya que tiene un comando y un archivo:

ls -l | pr -m - bla.txt
geirha
fuente
2
En lugar de pr -muno puede usar paste.
Ramchandra Apte
1
@RamchandraApte sí, aunque pasteno los alineará en columnas como lo pr -mhace.
geirha
4

Puedes usar screenasí:

En screentipo Ctrl- a |para vertical y Ctrl- a Spara división horizontal.

  • saltar a la siguiente región de visualización: Ctrl-a Tab
  • eliminar la región actual: Ctrl-a X
  • eliminar todas las regiones excepto la actual: Ctrl-a Q

comenzar ls -l /aen la mitad derecha y cat bla.txten la izquierda.

caos
fuente
Donde screenfunciona, tmuxtambién funciona.
kiri
3

TL; DR

Considere usar una combinación de paste/ en columnlugar de probtener resultados más consistentes.

  • Dependiendo de su sistema operativo, prse mezcla incorrectamente en las columnas cuando las longitudes de entrada difieren (Ubuntu, macOS) o, lo que es peor, imprimirá cada entrada en páginas completamente diferentes (Centos 7)

  • pr tanto antecede como anexa salida extraña

FORMATO:

paste <(cmd1) <(cmd2) | column -s $'\t' -t

Explicación detallada

Una solución altamente robusta es posible a través de una combinación de los comandos pastey column.

Ventajas del enfoque paste/ columnsobre pr:

  • Salida más limpia debido a que no se incluye información de marca de tiempo o encabezado de página, ni una pantalla completa de líneas vacías agregadas

  • Las columnas siempre permanecen separadas incluso cuando las longitudes de entrada son diferentes

Ejemplo concreto:

paste <(ls -1 .) <(ls -1 ..) | column -s $'\t' -t

Salida de la vida real de paste/ columntécnica en Ubuntu 16.04:

[email protected]:~/go/src/github.com/jaytaylor/html2text
$ paste <(ls -1 .) <(ls -1 ..) | column -s $'\t' -t
LICENSE            archiveify
README.md          go-hostsfile
html2text.go       html2text
html2text_test.go  jaytaylor
testdata           mockery-example
shipbuilder
stoppableListener
tesseract-web

Ver también: combinar archivos de texto en columnas

Para comparar: pren varias plataformas

TL; DR: el pr comportamiento es inconsistente en todos los sabores de Linux.

Salida de prversión en Ubuntu :

[email protected]:~/go/src/github.com/jaytaylor/html2text
$ pr -m <(ls -1 .) <(ls -1 ..)


2017-05-25 15:50                    /dev/fd/62                    Page 1


LICENSE                 archiveify
README.md               go-hostsfile
html2text.go                html2text
html2text_test.go           jaytaylor
testdata                mockery-example
                    shipbuilder
                    stoppableListener
                    tesseract-web

Salida de prversión en OS X / macOs :

[email protected]:~/go/src/github.com/jaytaylor/html2text
$ pr -m <(ls -1 .) <(ls -1 ..)


May 25 08:55 2017  Page 1


LICENSE                 archiveify
README.md               go-hostsfile
html2text.go                html2text
html2text_test.go           jaytaylor
testdata                mockery-example
                    shipbuilder
                    stoppableListener
                    tesseract-web

<... remainder of screen filled with blank lines ...>

Salida de prversión en Centos :

(Sorprendentemente, el comportamiento de prbajo Centos 7 difiere del de todas las otras plataformas probadas)

[email protected]:~/go/src/github.com/jaytaylor/html2text
$ pr <(ls -1 .) <(ls -1 ..)


2017-05-25 15:59                    /dev/fd/63                    Page 1


LICENSE
README.md
html2text.go
html2text_test.go
testdata

<... remainder of screen filled with blank lines ...>

2017-05-25 16:21                    /dev/fd/62                    Page 1


archiveify
go-hostsfile
html2text
jaytaylor
mockery-example
shipbuilder
stoppableListener
tesseract-web

<... remainder of screen filled with blank lines ...>
Jay Taylor
fuente
bonito. mejor que la respuesta aceptada. pero aún así, la salida en color lo rompe todo. paste <(screenfetch) <(echo hi |cowsay -W 20) |column -s $'\t' -t
phil294
Me alegra saber que lo encontraste útil. ¡Salud!
Jay Taylor
Es útil pero no funciona correctamente con los colores. ver el comando anterior. ¿Sabes qué hacer al respecto? gracias
phil294
Sí, los colores siempre lo estropearán. Eliminar los colores de antemano de la entrada puede ser el truco, por ejemplo, consulte estos recursos: commandlinefu.com/commands/view/3584/… o unix.stackexchange.com/questions/140251/…
Jay Taylor
Esta es una respuesta más completa y debería ser la respuesta aceptada.
Jeremy Iglehart