Resultado do comando de impressão lado a lado

11

É possível imprimir o resultado de 2 comandos lado a lado ...

Algo assim

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

Eu sei que isso prpode ser feito com arquivos, mas não encontrei uma maneira de fazer isso para comandos ...

Wolfy
fonte

Respostas:

13

Você pode usar substituição de processo

pr -m <(cmd1) <(cmd2)

no seu caso, desde que você tenha um comando e um arquivo:

ls -l | pr -m - bla.txt
Geirha
fonte
2
Em vez de pr -mum pode usar paste.
precisa
1
@RamchandraApte sim, embora pastenão os alinhe em colunas como pr -mfaz.
Geirha 15/10
4

Você pode usar screenassim:

No screentipo Ctrl- a |para vertical e Ctrl- a Spara divisão horizontal.

  • pule para a próxima região de exibição: Ctrl-a Tab
  • remover região atual: Ctrl-a X
  • remova todas as regiões, exceto a atual: Ctrl-a Q

comece ls -l /ana metade direita e cat bla.txtna esquerda.

caos
fonte
Onde screenfunciona, tmuxtambém funciona.
kiri
3

TL; DR

Considere usar uma combinação de paste/ em columnvez de probter resultados mais consistentes.

  • Dependendo do seu sistema operacional, as prcombinações incorretas nas colunas quando os comprimentos das entradas diferem (Ubuntu, macOS) ou pior ainda imprimem cada entrada em páginas completamente diferentes (Centos 7)

  • pr anexa e anexa saída estranha

FORMATO:

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

Explicação detalhada

Uma solução altamente robusta é possível através de uma combinação dos comandos pastee column.

Vantagens da abordagem paste/ columnsobre pr:

  • Saída mais limpa devido à falta de anexação de data e hora ou cabeçalho da página, nem a tela cheia de linhas vazias anexadas

  • As colunas sempre ficam separadas, mesmo quando os comprimentos de entrada são diferentes

Exemplo concreto:

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

Saída real paste/ columntécnica do 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

Consulte também: combinar arquivos de texto em colunas

Para comparação: prem várias plataformas

TL; DR: o pr comportamento é inconsistente nos tipos de Linux.

Saída da prversão no 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

Saída da prversão no 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 ...>

Saída da prversão no Centos :

(Surpreendentemente, o comportamento do prCentos 7 difere do de todas as outras plataformas testadas)

[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
fonte
legais. melhor que a resposta aceita. mas ainda assim, a saída colorida quebra tudo. paste <(screenfetch) <(echo hi |cowsay -W 20) |column -s $'\t' -t
phil294
Fico feliz em saber que você achou útil. Felicidades!
Jay Taylor
é útil, mas não está funcionando corretamente com cores. veja o comando acima. você sabe o que fazer sobre isso? graças
phil294
Sim, as cores sempre estragam tudo. Retirar cores antecipadamente da entrada pode ajudar, por exemplo, veja estes recursos: commandlinefu.com/commands/view/3584/… ou unix.stackexchange.com/questions/140251/…
Jay Taylor
Esta é uma resposta mais completa e deve ser a resposta aceita.
Jeremy Iglehart