Печать команды результат рядом


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делает.
гейра

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.