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 stdinvà 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 pbcopyvà 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 stdoutvà một tệp thì tôi có thể sử dụng teelệ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 stdoutbị "tắt tiếng" - Tôi không hỏi về cách gửi cattệp và grepmộ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 stdoutsau 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 teevà 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 :)