Imprime o resultado do comando lado a lado

7

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

Algo parecido com isto

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 pr pode fazer algo assim com arquivos, mas não encontrei uma maneira de fazer isso para comandos ...

    
por Wolfy 15.10.2013 / 15:37

3 respostas

12

Você pode usar a substituição de processos

pr -m <(cmd1) <(cmd2)

no seu caso, já que você tem um comando e um arquivo:

ls -l | pr -m - bla.txt
    
por geirha 15.10.2013 / 15:48
4

Você pode usar screen da seguinte forma:

Em screen type Ctrl - a | para vertical e Ctrl - a S para divisão horizontal.

  • pula para a próxima região de exibição: Ctrl - a Guia
  • remove a região atual: Ctrl - a X
  • remove todas as regiões, exceto a atual: Ctrl - a Q

inicie ls -l /a na metade direita e cat bla.txt na esquerda.

    
por chaos 15.10.2013 / 15:49
1

TL; DR

Considere usar uma combinação de paste / column em vez de pr para obter resultados mais consistentes.

  • Dependendo do seu sistema operacional, pr mistura incorretamente nas colunas quando os comprimentos de entrada diferem (Ubuntu, macOS) ou ainda pior imprimirá cada entrada em páginas completamente diferentes (Centos 7)

  • pr prepends e anexa saída irrelevante

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 paste e column .

Vantagens da abordagem paste / column sobre pr :

  • Saída mais limpa devido à ausência de informações sobre o registro de data e hora ou cabeçalho da página, nem uma tela inteira 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

Resultado da vida real da técnica paste / column no 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

Veja também: combine arquivos de texto em colunas

Para comparação: pr em várias plataformas

O comportamento TL; DR: pr está inconsistente nos sabores do Linux.

Saída da versão pr 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 versão pr 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 versão pr no Centos :

(Surpreendentemente, o comportamento de pr sob o Centos 7 difere 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 ...>
    
por Jay Taylor 25.05.2017 / 18:18