Schrift
[thread]6535[/thread]

Ausgabe verarbeiten: ohne direkte Wiederausgabe



<< >> 3 Einträge, 1 Seite
Froschpopo
 2004-08-27 06:21
#49637 #49637
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
Hi,

ich will den Befehl tail -f /var/log/mail verarbeiten.
Ich möchte, dass er mir jedesmal eine 4 ausgibt, wenn in einer Zeile die Zeichenfolge "pro" auftaucht.
Das ganze sollte natürlich in "Echtzeit" ablaufen.
Ich hab schon alles probiert, mit qx//, Backticks, System etc. Das Problem ist immer, dass er das Ergbnis von tail schon sofort ausgibt obwohl ich es garnicht printe. Witzig ist auch, dass er tail streamt, ohne dass ich eine Schleife oder sowas machen muss.
renee
 2004-08-27 09:47
#49638 #49638
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Probier mal sowas:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
#! /usr/bin/perl

use strict;
use warnings;

open(TAIL,"tail -f /var/log/mail |") or die $!;
while(my $line = <TAIL>){
print "4\n" if($line =~ /pro/);
}
close TAIL;
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Dubu
 2004-08-27 12:48
#49639 #49639
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
Sehr schoen einfach kann man sowas auch auf der Kommandozeile machen:
Code: (dl )
$ tail -f /var/log/mail | perl -ne 'print "4\n" if /pro/'
<< >> 3 Einträge, 1 Seite



View all threads created 2004-08-27 06:21.