Wol*_*lfy 11 command-line output
可以并排打印 2 个命令的结果...
像这样的东西
something `ls -l /a` `cat bla.txt`
Run Code Online (Sandbox Code Playgroud)
结果:
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
Run Code Online (Sandbox Code Playgroud)
我知道pr
可以用文件做这样的事情,但我没有找到一种方法来为命令做到这一点......
gei*_*rha 13
您可以使用进程替换
pr -m <(cmd1) <(cmd2)
Run Code Online (Sandbox Code Playgroud)
尽管在您的情况下,因为您有一个命令和一个文件:
ls -l | pr -m - bla.txt
Run Code Online (Sandbox Code Playgroud)
考虑使用paste
/的组合column
而不是pr
获得更一致的结果。
根据您的操作系统,pr
当输入长度不同时(Ubuntu、macOS)错误地混合在列中,甚至更糟的是将每个输入打印在完全不同的页面上(Centos 7)
pr
预先和附加无关输出
格式:
paste <(cmd1) <(cmd2) | column -s $'\t' -t
Run Code Online (Sandbox Code Playgroud)
通过paste
和column
命令的组合,可以实现高度稳健的解决方案。
paste
/column
方法的优点pr
:
由于未添加时间戳或页眉信息,也未添加全屏空行,因此输出更清晰
即使输入长度不同,列也始终保持分开
具体例子:
paste <(ls -1 .) <(ls -1 ..) | column -s $'\t' -t
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
pr
在各种平台上TL;DR: pr
跨 Linux 版本的行为不一致。
Ubuntupr
上的版本输出:
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
Run Code Online (Sandbox Code Playgroud)
OS X / macOspr
上的版本输出:
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 ...>
Run Code Online (Sandbox Code Playgroud)
Centospr
上的版本输出:
(令人惊讶的是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 ...>
Run Code Online (Sandbox Code Playgroud)