Wydrukuj wynik polecenia obok siebie

11

Możliwe jest wydrukowanie wyniku 2 poleceń obok siebie ...

Coś takiego

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

wynik:

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

Wiem, że prmożna zrobić coś takiego z plikami, ale nie znalazłem sposobu, aby to zrobić dla poleceń ...

Wolfy
źródło

Odpowiedzi:

13

Możesz użyć substytucji procesu

pr -m <(cmd1) <(cmd2)

jednak w twoim przypadku, ponieważ masz jedno polecenie i jeden plik:

ls -l | pr -m - bla.txt
geirha
źródło
2
Zamiast pr -mjednego można użyć paste.
Ramchandra Apte
1
@RamchandraApte tak, chociaż pastenie wyrówna ich w kolumnach jak pr -mrobi.
geirha
4

Możesz użyć w screenten sposób:

W screentypie Ctrl- a |do podziału pionowego i Ctrl- a Sdo podziału poziomego.

  • przejdź do następnego obszaru wyświetlania: Ctrl-a Tab
  • usuń bieżący region: Ctrl-a X
  • usuń wszystkie regiony oprócz bieżącego: Ctrl-a Q

zacznij ls -l /aw prawej połowie i cat bla.txtpo lewej.

chaos
źródło
Gdzie screendziała, tmuxteż działa.
kiri
3

TL; DR

Rozważ użycie kombinacji paste/ columnzamiast, praby uzyskać bardziej spójne wyniki.

  • W zależności od systemu operacyjnego prniepoprawnie miesza się w kolumnach, gdy długości wejściowe są różne (Ubuntu, macOS) lub nawet gorzej, wydrukuje każde wejście na zupełnie innych stronach (Centos 7)

  • pr zarówno dołącza, jak i dołącza zewnętrzne dane wyjściowe

FORMAT:

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

Szczegółowe wyjaśnienie

Wysoce niezawodne rozwiązanie jest możliwe dzięki kombinacji poleceń pastei column.

Zalety paste/ columnpodejścia w stosunku do pr:

  • Czystsze dane wyjściowe z powodu braku znacznika czasu lub informacji o nagłówku strony ani pełnego ekranu z pustymi wierszami

  • Kolumny zawsze pozostają osobne, nawet jeśli długości wejściowe są różne

Konkretny przykład:

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

Rzeczywista wydajność paste/ columntechnika 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

Zobacz także: łączenie plików tekstowych według kolumn

Dla porównania: prna różnych platformach

TL; DR: pr zachowanie jest niespójne w różnych wersjach systemu Linux.

Dane wyjściowe prwersji na 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

Dane wyjściowe prwersji na 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 ...>

Dane wyjściowe prwersji na Centos :

(Nieoczekiwanie zachowanie prpod Centos 7 różni się od wszystkich innych testowanych platform)

[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
źródło
miły. lepsze niż zaakceptowana odpowiedź. ale nadal kolorowe wydruki psują wszystko. paste <(screenfetch) <(echo hi |cowsay -W 20) |column -s $'\t' -t
phil294
Cieszę się, że uznałeś to za pomocne. Twoje zdrowie!
Jay Taylor
jest to pomocne, ale nie działa poprawnie z kolorami. patrz powyższe polecenie. wiesz co z tym zrobić? dzięki
phil294
Tak, kolory zawsze to zepsują. Usuwanie kolorów z danych wejściowych może załatwić sprawę , na przykład zobacz następujące zasoby: commandlinefu.com/commands/view/3584/... lub unix.stackexchange.com/questions/140251/...
Jay Taylor
To jest bardziej kompletna odpowiedź i powinna być odpowiedzią zaakceptowaną.
Jeremy Iglehart