PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Shell: Mehrere Ausdrücker nacheinander in Datei suchen



MaDmAsTeR
20-02-2003, 16:28
Hi!

ich stehe hier vor dem Problem, das ich mehrer Strings mit fgrep in einer Datei suchen lassen will.
Soweit ja kein Problem, nur wie bekomme ich es in einer Schleife hin, alle Ausdrücke nacheinander in dieser Datei suchen zu lassen, ich brauche jedesmal die Anzahl der gefunden Strings (-c) in einer Variablen.

Hans-Georg Normann
20-02-2003, 19:50
VIELE="muster1 muster2 muster3"
for EINS in $VIELE; do
grep -c $EINS /irgendwo/datei
done


meintest du das so? (Ich hoffe ich habe auf die Schnelle keine Fehler eingebaut

Hans

MaDmAsTeR
21-02-2003, 14:42
Hi!

danke so habe ich das gemeint, habe aber nicht an FOR gedacht :-)

Jetzt muss ich das nur noch etwas abändern, da ich die komplette Grep-Pattern in diesen String schreiben muss und das Pattern ist etwas kompliziert, schaut z.B. so aus.



fgrep -c -e '-add "ari' -e 'rem "ari' datei.txt


weil ich 2 Strings angeben muss um alle zu bekommen. Wie bekomme ich das jetzt in die FOR Schleife eingebaut? Was sich ändert ist eigentlich nur dieses "ari das kann auch "per sein oder so....

Hans-Georg Normann
22-02-2003, 13:55
So hatte ich mir das gedacht.

VAR1='-add "ari'
VAR2='rem "ari'

VARIABLEN="VAR1 VAR2"
for VAR in $VARIABLEN; do
grep -c $($VAR).................
done;

Aber $($VAR) mag mein Script garnicht. Muß aber irgendwie gehen. Das scrip will $() immer als neues Script ausführen, das ist natürlich Schwachsinn.

Ich will ja nix sagen, aber wenn's komplex wird, sollte man die Pfoten von sowas lassen und lieber gleich awk nehmen. Meine Schmerzgrenze ist da sehr niedrig, d. h. ich würde relativ schnell zum awk greifen.

Hans