Có một số lệnh lọc hoặc hành động trên đầu vào, và sau đó chuyển nó thành đầu ra, tôi nghĩ là thường stdout
- nhưng một số lệnh sẽ chỉ thực hiện stdin
và làm bất cứ điều gì chúng làm với nó, và không xuất ra gì.
Tôi quen thuộc nhất với OS X và vì vậy có hai ý tưởng xuất hiện ngay lập tức pbcopy
và pbpaste
- đó là phương tiện truy cập vào bảng tạm hệ thống.
Nhưng dù sao, tôi biết rằng nếu tôi muốn lấy thiết bị xuất chuẩn và nhổ đầu ra để đi đến cả hai stdout
và một tệp thì tôi có thể sử dụng tee
lệnh. Và tôi biết một chút về nó xargs
, nhưng tôi không nghĩ đó là thứ tôi đang tìm kiếm.
Tôi muốn biết làm thế nào tôi có thể phân chia stdout
để đi giữa hai (hoặc nhiều) lệnh. Ví dụ:
cat file.txt | stdout-split -c1 pbcopy -c2 grep -i errors
Có lẽ có một ví dụ tốt hơn ví dụ đó, nhưng tôi thực sự quan tâm đến việc làm thế nào tôi có thể gửi thiết bị xuất chuẩn đến một lệnh không chuyển tiếp nó và trong khi không stdout
bị "tắt tiếng" - Tôi không hỏi về cách gửi cat
tệp và grep
một phần của nó và sao chép nó vào clipboard - các lệnh cụ thể không quan trọng.
Ngoài ra - Tôi không hỏi làm thế nào để gửi nó vào một tệp và stdout
- đây có thể là một câu hỏi "trùng lặp" (xin lỗi) nhưng tôi đã tìm một số và chỉ có thể tìm thấy những câu hỏi tương tự đang hỏi về cách phân chia giữa stdout và một tệp - và câu trả lời cho những câu hỏi đó dường như là tee
, điều mà tôi không nghĩ sẽ có hiệu quả với tôi.
Cuối cùng, bạn có thể hỏi "tại sao không chỉ làm pbcopy là điều cuối cùng trong chuỗi ống?" và phản hồi của tôi là 1) nếu tôi muốn sử dụng nó mà vẫn thấy đầu ra trong giao diện điều khiển thì sao? 2) nếu tôi muốn sử dụng hai lệnh không xuất stdout
sau khi chúng xử lý đầu vào thì sao?
Ồ, và một điều nữa - Tôi nhận ra rằng tôi có thể sử dụng tee
và một ống có tên ( mkfifo
) nhưng tôi đã hy vọng một cách này có thể được thực hiện nội tuyến, chính xác, mà không cần thiết lập trước :)