Это интересный вопрос, и простой ответ должен быть таким: Используйте переключатель префикса с хвостом, но, к сожалению, в настоящее время это не реализовано в большинстве версий tail
.
Как я вижу, у вас есть два варианта: адаптировать стандартные инструменты к задаче (см. Udys ответ a>) или напишите свой собственный инструмент на своем любимом языке сценариев/программирования.
Ниже приведен один из способов сделать это с помощью модуля File::Tail::Multi
для perl
. Обратите внимание, что вам может понадобиться установить модуль из CPAN (cpan -i File::Tail::Multi
).
Сохраните следующий скрипт, например. mtail
на путь к исполняемому файлу и сделайте скрипт исполняемым.
#!/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 }
Измените OutputPrefix
на 'p'
, если вы предпочитаете префиксы полного пути.
Запустите это так:
mtail /var/links/proc2/id/myprocess*/Daily/myprocess*.log | grep --line-buffered "Search this: "
Вам не нужно указывать --line-buffered
, когда grep
является последней командой, поэтому этого достаточно:
mtail /var/links/proc2/id/myprocess*/Daily/myprocess*.log | grep "Search this: "
person
Thor
schedule
30.09.2013