Questa è una domanda interessante e la risposta dovrebbe essere semplice: Utilizzare l'interruttore del prefisso con la coda, ma purtroppo questo non è attualmente implementato nella maggior parte delle versioni di tail
.
come la vedo io, si hanno due opzioni: adattare gli strumenti standard per l'operazione (vedi Udys answer) o lascia la tua strumento con il linguaggio di scripting/programmazione preferito.
Di seguito è riportato un modo per eseguirlo con il modulo File::Tail::Multi
per perl
. Si noti che potrebbe essere necessario installare il modulo da CPAN (cpan -i File::Tail::Multi
).
Salvare il seguente script, ad es. mtail
per il tuo percorso eseguibile e rendere eseguibile lo script.
#!/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 }
Change OutputPrefix
a 'p'
, se si preferisce prefissi percorso completo.
Run in questo modo:
mtail /var/links/proc2/id/myprocess*/Daily/myprocess*.log | grep --line-buffered "Search this: "
Non è necessario specificare --line-buffered
quando grep
è l'ultimo comando, quindi questo è sufficiente:
mtail /var/links/proc2/id/myprocess*/Daily/myprocess*.log | grep "Search this: "
duplicati di http://superuser.com/questions/59471/simple-use-of-tail-grep-condizioni multiple –