Datei mittels grep durchsuchen

bauchinj

Erfahrenes Mitglied
Hallo!

Ich möchte gerne eine Datei Zeile für Zeile nach einem bestimmten String durchsuchen und diese Zeilen ausgeben.

Code:
grep 'mein String' file.txt

Nun kommt aber noch die Hürde dazu, dass jede Zeile eine gewisse Anzahl eines Zeichens beinhalten MUSS, bsp. 7x f.

also folgende Zeile ist nicht richtig:
Code:
ffmein String ff

folgende hingegen schon:

Code:
ff fda kann auch was anderes f stehen! mein Stringff f

kann ich dies mit grep lösen, vermute mit einem regulären Ausrück dürfte dies möglich sein, nur bin ich da leider nicht so fit......

Danke für eure Hilfe
 
Hi.

Mit reg. Ausdrücken kannst du keine Zeichen zählen.

Du müßtest mit Ersetzung arbeiten. Z.B. mit sed, awk oder Perl.

Filtere alle Zeilen mit dem gesuchten String, drucke nur diejenigen aus, welche nach dem Ersetzen aller Zeichen die nicht dem gewünschten Zeichen entsprechen noch die gewünschte Länge haben.

Gruß
 
hm.... danke erstmal für die schnelle Antwort. So wirds aber leider auch nicht funktionieren, da jede Zeile eine unterschiedliche länge haben kann.....

kannst du mir ev. einen Ansatz für Perl mit auf dem Weg geben?
 
hm.... danke erstmal für die schnelle Antwort. So wirds aber leider auch nicht funktionieren, da jede Zeile eine unterschiedliche länge haben kann.....
Doch so wird es funktionieren, wenn das Muster mit der entsprechenden Anzahl an Zeichen übereinstimmt (es dürfen ja mehr sein).
kannst du mir ev. einen Ansatz für Perl mit auf dem Weg geben?
In Perl kannst du einfach eine Bedingung formulieren:
Perl:
perl -n -e 'print $0 if (...);' < FILE

\edit: mir ist grad eingefallen, dass man es auch etwas vereinfachen kann:
Code:
sed -n -e '/mein String/{ /\(f[^f]*\)\{7\}/p }'
Gruß
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück