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
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