PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Probleme bei Weiterverarbeitung von grep auf mehrere Dateien



cArN4g3
06-07-2011, 13:30
Hallo,

das Ergebnis folgender Abfrage:



grep -i "kar.verspaet" /var/app/istp/log/tomcat-6.0.18-instanz1/perf.log*


erzeugt folgende Ausgabe:



/var/app/istp/log/tomcat-6.0.18-instanz1/perf.log.2011-07-06-10:2011-07-06 10:57:10,121|INFO|monitorService-daemon-2|MonitorServiceImpl||uicProzessorService|kar.Vers paetet|5||||kasan|pm-proxy|ISTP|ISTP|
/var/app/istp/log/tomcat-6.0.18-instanz1/perf.log.2011-07-06-10:2011-07-06 10:58:10,188|INFO|monitorService-daemon-2|MonitorServiceImpl||uicProzessorService|kar.Vers paetet|3||||kasan|pm-proxy|ISTP|ISTP|
/var/app/istp/log/tomcat-6.0.18-instanz1/perf.log.2011-07-06-10:2011-07-06 10:59:10,249|INFO|monitorService-daemon-2|MonitorServiceImpl||uicProzessorService|kar.Vers paetet|5||||kasan|pm-proxy|ISTP|ISTP|
/var/app/istp/log/tomcat-6.0.18-instanz1/perf.log.2011-07-06-11:2011-07-06 11:00:10,312|INFO|monitorService-daemon-1|MonitorServiceImpl||uicProzessorService|kar.Vers paetet|44||||kasan|pm-proxy|ISTP|ISTP|
/var/app/istp/log/tomcat-6.0.18-instanz1/perf.log.2011-07-06-11:2011-07-06 11:01:10,379|INFO|monitorService-daemon-1|MonitorServiceImpl||uicProzessorService|kar.Vers paetet|1||||kasan|pm-proxy|ISTP|ISTP|


Nun meine Frage: ich möchte mir nur die Zeilen anzeigen lassen, die bei cut -f "|" -f8 einen Zahlenwert > 20 haben.

Mein Problem:

beim Umleiten des Grep-Ergebnisses behandelt for die gesamte Grep-Ausgabe als eine Zeile. Egal ob ich IFS ändere, ich bekomme es nicht hin, das in einer for-Schleife die Grepausgabe wirklich echt zeilenweise verarbeitet wird.

Einfaches Beispiel:



testvar=`grep -i "kar.verspaet" /var/app/istp/log/tomcat-6.0.18-instanz1/perf.log*`;for i in `echo $testvar`; do echo "---"$i"---";done


ergibt in der Ausgabe die 1. "---" in der ersten Zeile der Ausgabe und die 2. "---" in der letzten Zeile der ausgabe.

Bitte um Hilfe.. möchte an dieser Stelle ein gewisses Monitoring verautomatisieren und bräuchte halt zwingend nur Zeilen mit Zahlenwert > Wert..

mfg & thx im Voraus

Carn

zst
07-07-2011, 08:25
Hallo Carn,
wenn du mit einer Zwischendatei leben kannst, dann wäre sicher while eine gute Alternative. Damit kann man hervorragend ganze Zeilen bearbeiten.
while read ZEILE ...

Gruß zst

cArN4g3
09-07-2011, 14:58
Hallo,

danke für die Antwort:

mit:




grep -i "kar.verspaet" /var/app/istp/log/tomcat-6.0.18-instanz1/perf.log* | while read line; do tempVar=`echo $line | cut -d "|" -f8`;if [ $tempVar -gt 20 ]; then echo $line;fi;done



habe ich es nun hinbekommen.
(ausm Gedächtnis geschrieben, aber so ähnlich müsste es gewesen sein.)

mfg

carn