Stampa i risultati del comando fianco a fianco


11

È possibile stampare il risultato di 2 comandi fianco a fianco ...

Qualcosa come questo

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

risultato:

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

So che prpuò fare qualcosa del genere con i file, ma non ho trovato il modo di farlo per i comandi ...

Risposte:


13

È possibile utilizzare la sostituzione del processo

pr -m <(cmd1) <(cmd2)

anche se nel tuo caso, dato che hai un comando e un file:

ls -l | pr -m - bla.txt

2
Invece di pr -muno può usare paste.
Ramchandra Apte,

1
@RamchandraApte sì, anche se pastenon li allineerà in colonne come pr -mfa.
geirha,

4

Puoi usare screencosì:

Nel screentipo Ctrl- a |per verticale e Ctrl- a Sper divisione orizzontale.

  • passa alla regione di visualizzazione successiva: Ctrl-a Tab
  • rimuovere la regione corrente: Ctrl-a X
  • rimuovere tutte le regioni tranne quella corrente: Ctrl-a Q

inizia ls -l /anella metà destra e cat bla.txtnella sinistra.


Dove screenfunziona, tmuxfunziona anche.
Kiri,

3

TL; DR

Prendi in considerazione l'utilizzo di una combinazione di paste/ columnpiuttosto che prper ottenere risultati più coerenti.

  • A seconda del tuo sistema operativo, prmescola erroneamente le colonne quando le lunghezze di input differiscono (Ubuntu, macOS) o peggio ancora stamperanno ogni input su pagine completamente diverse (Centos 7)

  • pr antepone e accoda output esterno

FORMATO:

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

Spiegazione dettagliata

Una soluzione altamente affidabile è possibile attraverso una combinazione dei comandi pastee column.

Vantaggi dell'approccio paste/ columnrispetto a pr:

  • Output più pulito a causa della mancanza di data / ora delle informazioni dell'intestazione della pagina, né della visualizzazione di uno schermo intero di righe vuote

  • Le colonne rimangono sempre separate anche quando le lunghezze di input sono diverse

Esempio concreto:

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

Output di paste/ columntecnica nella vita reale su Ubuntu 16.04:

jay-z@jaytaylor.com:~/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

Vedi anche: combina i file di testo in base alla colonna

Per confronto: prsu varie piattaforme

TL; DR: il pr comportamento è incoerente tra le versioni di Linux.

Uscita della prversione su Ubuntu :

jay-z@jaytaylor.com:~/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

Uscita della prversione su OS X / macOs :

jay-z@jaytaylor.com:~/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 ...>

Uscita della prversione su Centos :

(Sorprendentemente, il comportamento di prCentos 7 differisce da quello di tutte le altre piattaforme testate)

jay-z@jaytaylor.com:~/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 ...>

simpatico. meglio della risposta accettata. ma comunque, l'output colorato rompe tutto. paste <(screenfetch) <(echo hi |cowsay -W 20) |column -s $'\t' -t
phil294,

Sono contento di sentire che l'hai trovato utile. Saluti!
Jay Taylor,

è utile ma non funziona correttamente con i colori. vedi sopra il comando. sai cosa fare al riguardo? grazie
phil294

Sì, i colori lo rovineranno sempre. Spogliarello i colori in anticipo dalla ingresso può fare il trucco, per gli esempi vedere queste risorse: commandlinefu.com/commands/view/3584/... o unix.stackexchange.com/questions/140251/...
Jay Taylor

Questa è una risposta più completa e dovrebbe essere la risposta accettata.
Jeremy Iglehart,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.