Kết quả lệnh in cạnh nhau


11

Có thể in kết quả của 2 lệnh cạnh nhau ...

Một cái gì đó như thế này

something `ls -l /a` `cat bla.txt`

kết quả:

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

Tôi biết rằng prcó thể làm một cái gì đó như thế này với các tệp, nhưng tôi đã không tìm ra cách nào để làm điều này cho các lệnh ...

Câu trả lời:


13

Bạn có thể sử dụng thay thế quá trình

pr -m <(cmd1) <(cmd2)

mặc dù trong trường hợp của bạn, vì bạn có một lệnh và một tệp:

ls -l | pr -m - bla.txt

2
Thay vì pr -mngười ta có thể sử dụng paste.
Ramowderra Apte

1
@RamframraApte có, mặc dù pastesẽ không sắp xếp chúng trong các cột như thế pr -m.
geirha

4

Bạn có thể sử dụng screennhư thế này:

Trong screenloại Ctrl- a |cho dọc và Ctrl- a Scho phân chia ngang.

  • nhảy đến khu vực hiển thị tiếp theo: Ctrl-a Tab
  • xóa vùng hiện tại: Ctrl-a X
  • xóa tất cả các vùng trừ vùng hiện tại: Ctrl-a Q

bắt đầu ls -l /aở nửa bên phải và cat bla.txtbên trái


Trường hợp screenlàm việc, tmuxlàm việc quá.
kiri

3

TL; DR

Cân nhắc sử dụng kết hợp paste/ columnthay vì prđể có kết quả phù hợp hơn.

  • Tùy thuộc vào hệ điều hành của bạn, prtrộn không chính xác trong các cột khi độ dài đầu vào khác nhau (Ubuntu, macOS) hoặc thậm chí tệ hơn sẽ in mỗi đầu vào trên một trang hoàn toàn khác nhau (Centos 7)

  • pr cả trả trước và nối thêm đầu ra

ĐỊNH DẠNG:

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

Giải thích chi tiết

Một giải pháp rất mạnh mẽ là có thể thông qua sự kết hợp của các lệnh pastecolumn.

Ưu điểm của paste/ columnphương pháp tiếp cận pr:

  • Đầu ra sạch hơn do không có dấu thời gian hoặc thông tin tiêu đề trang được thêm vào trước, cũng như toàn màn hình của các dòng trống được thêm vào

  • Các cột luôn ở riêng biệt ngay cả khi độ dài đầu vào khác nhau

Ví dụ cụ thể:

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

Đầu ra paste/ columnkỹ thuật thực tế trên 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

Xem thêm: kết hợp các tệp văn bản theo cột

Để so sánh: prtrên các nền tảng khác nhau

TL; DR: pr hành vi không nhất quán trên các hương vị Linux.

Đầu ra của prphiên bản trên 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

Đầu ra của prphiên bản trên 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 ...>

Đầu ra của prphiên bản trên Centos :

(Đáng ngạc nhiên là hành vi của prCentos 7 khác với tất cả các nền tảng khác được thử nghiệm)

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

đẹp. tốt hơn câu trả lời được chấp nhận. nhưng vẫn, đầu ra màu phá vỡ mọi thứ. paste <(screenfetch) <(echo hi |cowsay -W 20) |column -s $'\t' -t
phil294

Vui mừng khi nghe bạn thấy nó hữu ích. Chúc mừng!
Jay Taylor

Nó rất hữu ích nhưng không hoạt động đúng với màu sắc. xem lệnh trên. bạn có biết phải làm gì về điều này? cảm ơn
phil294

Vâng, màu sắc sẽ luôn làm nó rối tung lên. Tước màu sắc trước từ đầu vào có thể làm các trick, ví dụ thấy các nguồn lực: commandlinefu.com/commands/view/3584/... hoặc unix.stackexchange.com/questions/140251/...
Jay Taylor

Đây là một câu trả lời đầy đủ hơn và nên là câu trả lời được chấp nhận.
Jeremy Iglehart
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.