并排打印命令结果

并排打印命令结果

可以并排打印两个命令的结果......

像这样

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可以对文件执行类似操作,但我没有找到对命令执行此操作的方法......

答案1

您可以使用流程替代

pr -m <(cmd1) <(cmd2)

尽管在您的情况下,由于您有一个命令和一个文件:

ls -l | pr -m - bla.txt

答案2

总结

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

Ubuntu 16.04 上paste/技术的实际输出:column

[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

也可以看看:按列合并文本文件

比较:pr在各个平台上

总结: pr不同 Linux 版本的行为不一致。

pr版本输出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

pr版本输出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 ...>

pr版本输出Centos

(令人惊讶的是,Centos 7 下的行为pr与所有其他测试平台的行为不同)

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

答案3

你可以screen这样使用:

类型-表示垂直分割,screen-表示水平分割。Ctrla |Ctrla S

  • 跳转到下一个显示区域: Ctrl-a Tab
  • 删除当前区域:Ctrl-a X
  • 删除除当前区域之外的所有区域:Ctrl-a Q

ls -l /a从右半部分开始,然后cat bla.txt从左半部分开始。

相关内容