Друкувати результат команди поруч


11

Можна друкувати результат 2 команд поруч ...

Щось на зразок цього

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

результат:

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

Я знаю, що prможна зробити щось подібне з файлами, але я не знайшов способу зробити це для команд ...

Відповіді:


13

Можна використовувати процес заміщення

pr -m <(cmd1) <(cmd2)

хоча у вашому випадку, оскільки у вас є одна команда та один файл:

ls -l | pr -m - bla.txt

2
Замість pr -mодного можна використовувати paste.
Рамчандра Апте

1
@RamchandraApte так, хоча pasteне буде вирівнювати їх у стовпцях, як pr -mце робиться.
geirha

4

Ви можете використовувати screenтак:

За screenтипом Ctrl- a |для вертикального і Ctrl- a Sдля горизонтального розщеплення.

  • перейти до наступної області відображення: Ctrl-a Tab
  • видалити поточний регіон: Ctrl-a X
  • видалити всі регіони, окрім поточної: Ctrl-a Q

починати ls -l /aв правій половині і cat bla.txtв лівій.


Де screenпрацює, tmuxтеж працює.
кірі

3

TL; DR

Подумайте про використання комбінації paste/, columnа не prдля отримання більш послідовних результатів.

  • Залежно від вашої ОС, prнеправильно змішується у стовпцях, коли довжина введення відрізняється (Ubuntu, macOS) або ще гірше буде друкувати кожен вхід на зовсім інших сторінках (Centos 7)

  • pr і попереджує, і додає сторонній вихід

ФОРМАТ:

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

Детальне пояснення

Дуже надійне рішення можливе завдяки комбінації команд pasteта column.

Переваги paste/ columnпідходу над pr:

  • Чистіший вихід через відсутність попередньої інформації про часові позначки або заголовки сторінки, а також не доданий повний екран порожніх рядків

  • Стовпці завжди залишаються окремими, навіть якщо довжини вводу різні

Конкретний приклад:

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

Реальний вихід paste/ columnтехніка на 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

Дивіться також: комбінувати текстові файли в стовпцях

Для порівняння: prна різних платформах

TL; DR: pr поведінка є непослідовною у різних смаках Linux.

Вихід prверсії на 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

Вихід prверсії для 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 ...>

Вихід prверсії на Centos :

(Дивно, але поведінка prпід Centos 7 відрізняється від поведінки всіх інших перевірених платформ)

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

приємно. краще, ніж прийнята відповідь. але все ж кольоровий вихід розбиває все. paste <(screenfetch) <(echo hi |cowsay -W 20) |column -s $'\t' -t
phil294

Радий почути, що Ви вважаєте це корисним. Ура!
Джей Тейлор

це корисно, але не працює належним чином із кольорами. див. вище команду. ти знаєш, що з цим робити? спасибі
phil294

Так, кольори завжди будуть його псувати. Зачистка кольору заздалегідь від входу може зробити трюк, приклади см цих ресурсів: commandlinefu.com/commands/view/3584 / ... або unix.stackexchange.com/questions/140251 / ...
Jay Taylor

Це більш повна відповідь і повинна бути прийнятою відповіддю.
Джеремі Іглехарт
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.