Hãy cẩn thận ở đây; chỉ cần trích dẫn chúng sẽ kết hợp trộn các kết quả theo những cách bạn có thể không muốn: ví dụ: nếu chúng là các tệp nhật ký, bạn có thể không thực sự muốn một dòng từ một dòng được chèn giữa dòng này đến dòng kia. Nếu ổn, thì
đuôi -f / tmp / p1 / tmp / p2> / tmp / đầu ra
sẽ làm việc. Nếu điều đó không ổn, thì bạn sẽ phải tìm một cái gì đó sẽ thực hiện đệm dòng và chỉ xuất ra các dòng hoàn chỉnh. Syslog thực hiện điều này, nhưng tôi không chắc những gì khác có thể.
EDIT: tối ưu hóa cho việc đọc không có bộ đệm và các ống được đặt tên:
coi / tmp / p1, / tmp / p2, / tmp / p3 như các đường ống được đặt tên, được tạo bởi "mkfifo / tmp / p N "
đuôi -q -f / tmp / p1 / tmp / p2 | awk '{in $ 0> "/ tmp / p3"; đóng ("/ tmp / p3"); fflush ();} '&
bây giờ bằng cách này, chúng ta có thể đọc Đường ống có tên "/ tmp / p3" không có bộ đệm bằng:
đuôi -f / tmp / p3
có một lỗi nhỏ sắp xếp, bạn cần "khởi tạo" đường ống đầu vào thứ 1 / tmp / p1 bằng cách:
tiếng vang -n> / tmp / p1
để đuôi sẽ chấp nhận đầu vào từ ống thứ 2 / tmp / p2 trước và không đợi cho đến khi có thứ gì đó đến / tmp / p1. điều này có thể không phải là trường hợp, nếu bạn chắc chắn, / tmp / p1 sẽ nhận đầu vào trước.
Ngoài ra, tùy chọn -q là cần thiết để đuôi không in rác về tên tệp.