Archiv verlassen und diese Seite im Standarddesign anzeigen : mehrere Wörter greppen und individuell zählen
ThorstenHirsch
05.11.04, 09:12
Servus!
Wie kann ich denn folgendes Problem bewältigen? Ein Programm gibt mir ne ewig lange Ausgabe und ich soll jetzt zählen wie oft in der Ausgabe Hans, wie oft Franz und wie oft Kai-Uwe vorkommt. Der Knackpunkt: ich darf das Programm, das mir die ewig lange Ausgabe liefert nur 1x aufrufen.
Gruß,
Thorsten
seltenlaufprogramm > /tmp/programlog.txt
grep -c franz /tmp/programlog.txt
grep -c kai-uwe /tmp/programlog.txt
usw...
ThorstenHirsch
05.11.04, 10:49
Neeee, des is ja doof. Ohne temp-Datei bitte.
Das Ding soll schließlich auch Performance haben!
nehm halt statt der tempdatei nen fifo
da bei mir /tmp ein link auf /dev/shm ist, hab ich da keine Performance-Problemen...
Der Schalter -f FILE von grep könnte die Temporärdateien
und Mehrfachaufrufe vermeiden (alle Suchbegriffe zeilenweise
aus angegebener Datei).
Allerdings zählt grep mit -c nur passende Zeilen.
Wenn der Suchbegriff öfter je Zeile vorkommt, wäre awk/perl
evtl. besser geeignet.
Gruss,
Wolfgang
ThorstenHirsch
05.11.04, 17:02
Jup, mit awk konnte ich's lösen:
langeliste.sh | egrep 'Hans|Franz|Kai-Uwe' | awk \
'BEGIN { hans=0; franz=0; kaiuwe=0} { if (\$1 \
== "Hans") ++hans; if (\$1 == "Franz") ++franz; \
if (\$1 == "Kai-Uwe") ++kaiuwe} END { print \
hans,franz,kaiuwe }'
...so, und jetzt endlich FEIERABEND!!!!
P.S.: ich hab heute natürlich noch viel mehr gemacht als den ganzen Tag über diese Zeile gegrübelt ;)
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.