コマンド結果を並べて印刷する


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)

ただし、あなたの場合、あなたは1つのコマンドと1つのファイルを持っているので:

ls -l | pr -m - bla.txt

2
代わりにpr -mを使用できますpaste
Ramchandra Apte

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/の組み合わせの使用を検討してください。columnpr

  • OSによっては、pr入力の長さが異なる場合(Ubuntu、macOS)、さらに悪い場合は各入力が完全に異なるページに印刷される場合に列が誤って混ざります(Centos 7)

  • pr 余分な出力を追加および追加します

フォーマット:

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

詳細な説明

pastecolumnコマンドの組み合わせにより、非常に堅牢なソリューションが可能になります。

paste/ columnアプローチの利点pr

  • タイムスタンプまたはページヘッダー情報が追加されないため、または空行のフルスクリーンが追加されないため、出力がよりきれいになります。

  • 入力の長さが異なっていても、列は常に分離されたままです

具体例:

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

Ubuntu 16.04 でのpaste/ columnテクニックの実際の出力:

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フレーバー間で動作に一貫性がありません。

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

OS X / macOsでのprバージョンの出力:

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に

(驚くことに、prCentos 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/...
ジェイ・テイラー

これは、より完全な回答であり、受け入れられる回答である必要があります。
ジェレミーイグレハート
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.