Print command result side by side
You can use process substitution
pr -m <(cmd1) <(cmd2)
though in your case, since you have one command and one file:
ls -l | pr -m - bla.txt
TL;DR
Consider using a combination of paste
/ column
rather than pr
to get more consistent results.
Depending on your OS,
pr
incorrectly mixes in the columns when input lengths differ (Ubuntu, macOS) or even worse will print each input on a completely different pages (Centos 7)pr
both prepends and appends extraneous output
FORMAT:
paste <(cmd1) <(cmd2) | column -s $'\t' -t
Detailed Explanation
A highly robust solution is possible through a combination of the paste
and column
commands.
Advantages of the paste
/ column
approach over pr
:
Cleaner output due to no timestamp or page header information being prepended, nor a full screen of empty lines appended
Columns always stay separate even when the input lengths are different
Concrete example:
paste <(ls -1 .) <(ls -1 ..) | column -s $'\t' -t
Real-life output of paste
/ column
technique on 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
See also: combine text files column-wise
For Comparison: pr
on various platforms
TL;DR: pr
behavior is inconsistent across Linux flavors.
Output of pr
version on 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
Output of pr
version on 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 ...>
Output of pr
version on Centos:
(Surprisingly the behaviour of pr
under Centos 7 differs from that of all other platforms tested)
[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 ...>
You can use screen
like this:
In screen
type Ctrl-a | for vertical and Ctrl-a S for horizontal split.
- jump to next display region: Ctrl-a Tab
- remove current region: Ctrl-a X
- remove all regions but the current one: Ctrl-a Q
start ls -l /a
in the right half and cat bla.txt
in the left.