Đây là một câu hỏi thú vị và câu trả lời đơn giản nên là: Sử dụng công tắc tiền tố với đuôi, nhưng tiếc này hiện chưa được thực hiện ở hầu hết các phiên bản của tail
.
Như tôi thấy, bạn có hai tùy chọn: điều chỉnh các công cụ chuẩn cho công việc (xem Udys answer) hoặc viết công cụ của riêng bạn bằng ngôn ngữ lập trình/kịch bản yêu thích của bạn.
Dưới đây là một cách bạn có thể thực hiện với mô-đun File::Tail::Multi
cho perl
. Lưu ý rằng bạn có thể cần cài đặt mô-đun từ CPAN (cpan -i File::Tail::Multi
).
Lưu tập lệnh sau, ví dụ: mtail
vào đường dẫn thực thi của bạn và làm cho tập lệnh thực thi được.
#!/usr/bin/env perl
use File::Tail::Multi;
$| = 1; # Enable autoflush
$tail = File::Tail::Multi->new(RemoveDuplicate => 0,
OutputPrefix => 'f',
Files => \@ARGV);
while(1) { $tail->read; $tail->print; sleep 2 }
Thay đổi OutputPrefix
để 'p'
nếu bạn thích tiền tố đường dẫn đầy đủ.
Run nó như thế này:
mtail /var/links/proc2/id/myprocess*/Daily/myprocess*.log | grep --line-buffered "Search this: "
Bạn không cần phải xác định --line-buffered
khi grep
là lệnh cuối cùng, vì vậy đây là đủ:
mtail /var/links/proc2/id/myprocess*/Daily/myprocess*.log | grep "Search this: "
Duplicate của http://superuser.com/câu hỏi/59471/đơn giản-sử dụng-of-đuôi-grep-nhiều điều kiện –