Befehlsergebnis nebeneinander drucken

11

Es ist möglich, das Ergebnis von 2 Befehlen nebeneinander zu drucken ...

Etwas wie das

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

Ergebnis:

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

Ich weiß, dass prso etwas mit Dateien möglich ist, aber ich habe keine Möglichkeit gefunden, dies für Befehle zu tun ...

Wolfy
quelle

Antworten:

13

Sie können die Prozessersetzung verwenden

pr -m <(cmd1) <(cmd2)

In Ihrem Fall haben Sie jedoch einen Befehl und eine Datei:

ls -l | pr -m - bla.txt
Geirha
quelle
2
Anstelle pr -mkann man verwenden paste.
Ramchandra Apte
1
@RamchandraApte ja, aber sie pastewerden nicht wie in Spalten ausgerichtet pr -m.
Geirha
4

Sie können screenwie folgt verwenden:

In screenTyp Ctrl- a |für vertikale und Ctrl- a Sfür horizontale Aufteilung.

  • zum nächsten Anzeigebereich springen: Ctrl-a Tab
  • Aktuelle Region entfernen: Ctrl-a X
  • Entfernen Sie alle Regionen außer der aktuellen: Ctrl-a Q

Beginnen Sie ls -l /ain der rechten Hälfte und cat bla.txtin der linken.

Chaos
quelle
Wo screenfunktioniert, tmuxfunktioniert auch.
Kiri
3

TL; DR

Erwägen Sie die Verwendung einer Kombination von paste/ columnstatt prkonsistentere Ergebnisse zu erhalten.

  • Je nach Betriebssystem werden prdie Spalten falsch gemischt, wenn sich die Eingabelängen unterscheiden (Ubuntu, macOS) oder noch schlimmer, jeder Eingang wird auf einer völlig anderen Seite gedruckt (Centos 7).

  • pr sowohl fremde Ausgabe vorangestellt als auch angehängt

FORMAT:

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

Ausführliche Erklärung

Eine äußerst robuste Lösung ist durch eine Kombination der Befehle pasteund möglich column.

Vorteile des paste/ column-Ansatzes gegenüber pr:

  • Sauberere Ausgabe, da weder Zeitstempel- oder Seitenkopfinformationen vorangestellt noch ein Vollbild mit leeren Zeilen angehängt wird

  • Spalten bleiben immer getrennt, auch wenn die Eingabelängen unterschiedlich sind

Konkretes Beispiel:

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

Real-Life-Ausgabe von paste/ columnTechnik unter 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

Siehe auch: Textdateien spaltenweise kombinieren

Zum Vergleich: prauf verschiedenen Plattformen

TL; DR: Das pr Verhalten ist in allen Linux-Varianten inkonsistent.

Ausgabe der prVersion unter 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

Ausgabe der prVersion unter 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 ...>

Ausgabe der prVersion auf Centos :

(Überraschenderweise unterscheidet sich das Verhalten prunter Centos 7 von dem aller anderen getesteten Plattformen.)

[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
quelle
nett. besser als die akzeptierte Antwort. Trotzdem bricht die farbige Ausgabe alles. paste <(screenfetch) <(echo hi |cowsay -W 20) |column -s $'\t' -t
Phil294
Schön zu hören, dass Sie es hilfreich fanden. Prost!
Jay Taylor
Es ist hilfreich, funktioniert aber nicht richtig mit Farben. siehe obigen Befehl. Wissen Sie, was Sie dagegen tun sollen? danke
phil294
Ja, Farben werden es immer vermasseln. Siehe Farben vorher vom Eingang Strippen kann den Trick tun, für Beispiele , die diese Ressourcen: commandlinefu.com/commands/view/3584/... oder unix.stackexchange.com/questions/140251/...
Jay Taylor
Dies ist eine vollständigere Antwort und sollte die akzeptierte Antwort sein.
Jeremy Iglehart