Imprimer côté résultat de la commande côte à côte

11

Il est possible d'imprimer le résultat de deux commandes côte à côte ...

Quelque chose comme ça

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

résultat:

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

Je sais que prpeut faire quelque chose comme ça avec les fichiers, mais je ne l' ai pas trouvé un moyen de le faire pour les commandes ...

Wolfy
la source

Réponses:

13

Vous pouvez utiliser la substitution de processus

pr -m <(cmd1) <(cmd2)

mais dans votre cas, puisque vous avez une commande et un fichier:

ls -l | pr -m - bla.txt
geirha
la source
2
Au lieu d' pr -mun peut utiliser paste.
Ramchandra Apte
1
@RamchandraApte oui, mais pastene les alignera pas dans des colonnes comme le pr -mfait.
geirha
4

Vous pouvez utiliser screencomme ceci:

En screentype Ctrl- pour une séparation a |verticale et Ctrl- a Spour une séparation horizontale.

  • passer à la région d'affichage suivante: Ctrl-a Tab
  • supprimer la région actuelle: Ctrl-a X
  • supprimer toutes les régions sauf celle actuelle: Ctrl-a Q

commencer ls -l /adans la moitié droite et cat bla.txtdans la gauche.

le chaos
la source
Là où ça screenmarche, tmuxça marche aussi.
kiri
3

TL; DR

Envisagez d'utiliser une combinaison de paste/ columnplutôt que prd'obtenir des résultats plus cohérents.

  • En fonction de votre système d'exploitation, les prmélanges incorrects dans les colonnes lorsque les longueurs d'entrée diffèrent (Ubuntu, macOS) ou pire encore imprimeront chaque entrée sur des pages complètement différentes (Centos 7)

  • pr à la fois ajoute et ajoute une sortie étrangère

FORMAT:

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

Explication détaillée

Une solution très robuste est possible grâce à une combinaison des commandes pasteet column.

Avantages de l' approche paste/ par columnrapport à pr:

  • Sortie plus propre car aucun horodatage ou en-tête de page n'est ajouté, ni plein écran de lignes vides ajoutées

  • Les colonnes restent toujours séparées même lorsque les longueurs d'entrée sont différentes

Exemple concret:

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

Sortie réelle de paste/ columntechnique sur 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

Voir aussi: combiner des fichiers texte en colonnes

A titre de comparaison: prsur différentes plateformes

TL; DR: le pr comportement est incohérent entre les versions Linux.

Sortie de prversion sur 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

Sortie de prversion sur 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 ...>

Sortie de prversion sur Centos :

(Étonnamment, le comportement de prsous Centos 7 diffère de celui de toutes les autres plates-formes testées)

[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
la source
agréable. mieux que la réponse acceptée. mais quand même, la sortie colorée casse tout. paste <(screenfetch) <(echo hi |cowsay -W 20) |column -s $'\t' -t
phil294
Heureux d'apprendre que vous l'avez trouvé utile. À votre santé!
Jay Taylor
c'est utile mais ne fonctionne pas correctement avec les couleurs. voir la commande ci-dessus. savez-vous quoi faire à ce sujet? merci
phil294
Oui, les couleurs gâcheront toujours. Couleurs Décapage préalable de l'entrée peut faire l'affaire, voir des exemples de ces ressources: commandlinefu.com/commands/view/3584/... ou unix.stackexchange.com/questions/140251/...
Jay Taylor
Il s'agit d'une réponse plus complète et devrait être la réponse acceptée.
Jeremy Iglehart