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 ...

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

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.


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:

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

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 :

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

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

Sortie de prversion sur Centos :

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

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 ...>

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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.