lệnh tee, hiển thị cả đầu ra stdout


1

Tôi muốn hiển thị nội dung của một tệp và cả cksum được tính của tệp cùng một lúc, tại sao lệnh sau chỉ xuất ra tệp - mà không phải là cksum?

sudo cat filename | tee cksum

Tôi biết rằng tôi có thể sử dụng sth like f=filename; sudo cat $f; sudo cksum $f nhưng tôi thích sử dụng tee hoặc sth tương tự nếu có thể.

Câu trả lời:


-1

Ý bạn không phải là:

sudo cat filename | tee file-name | cksum

Để lặp lại tên tệp, teekhông phải là lệnh bạn muốn.

Thử: cat filename && cksum $_


Tôi muốn tránh sự trùng lặp của "tên tệp" vì nó là một con đường rất dài. Nếu không, tôi chỉ có thể sử dụng cat filename && cksum filename- phải không? :)
tollo

tee không phải là lệnh bạn muốn Để lặp lại tên tệp thử : cat filename && cksum $_.
harrymc

2

Lý do tại sao lệnh của bạn không hiển thị tổng kiểm tra là vì bạn thực sự đang ghi vào một tệp được gọi cksumvà in nó ra thiết bị xuất chuẩn, thay vì in nó ra thiết bị xuất chuẩn và chuyển nó sang lệnh chksum thực tế.

Thay vào đó, những gì bạn có thể làm là sử dụng tee để ghi nó vào tệp tty (thiết bị đầu cuối của bạn) và sử dụng thiết bị xuất chuẩn cho chksum, như sau:

sudo cat filename | tee /dev/tty | cksum

Nguồn từ Stackoverflow


Cảm ơn rât nhiều! Tôi thích giải pháp khác chỉ một chút nữa nhưng bạn cũng rất tiện dụng - tôi sẽ ghi nhớ nó. cảm ơn!
tollo
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.