tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
777
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von bauchinj
    bauchinj bauchinj ist offline Mitglied Gold
    Registriert seit
    Oct 2009
    Ort
    Oberösterreich
    Beiträge
    223
    Hallo!

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

    Code :
    1
    
    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 :
    1
    
    ffmein String ff

    folgende hingegen schon:

    Code :
    1
    
    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
     

  2. #2
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.168
    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ß
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  3. #3
    Avatar von bauchinj
    bauchinj bauchinj ist offline Mitglied Gold
    Registriert seit
    Oct 2009
    Ort
    Oberösterreich
    Beiträge
    223
    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?
     

  4. #4
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.168
    Zitat Zitat von bauchinj Beitrag anzeigen
    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).
    Zitat Zitat von bauchinj Beitrag anzeigen
    kannst du mir ev. einen Ansatz für Perl mit auf dem Weg geben?
    In Perl kannst du einfach eine Bedingung formulieren:
    Code perl:
    1
    
    perl -n -e 'print $0 if (...);' < FILE

    \edit: mir ist grad eingefallen, dass man es auch etwas vereinfachen kann:
    Code :
    1
    
    sed -n -e '/mein String/{ /\(f[^f]*\)\{7\}/p }'
    Gruß
    Geändert von deepthroat (19.11.10 um 11:30 Uhr)
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

Ähnliche Themen

  1. Antworten: 3
    Letzter Beitrag: 26.09.10, 02:40
  2. egrep grep sed und co. parsen einer datei
    Von tplanitz im Forum Sonstige Sprachen
    Antworten: 3
    Letzter Beitrag: 08.08.07, 10:34
  3. Datei durchsuchen
    Von Tualex im Forum PHP
    Antworten: 12
    Letzter Beitrag: 20.04.06, 08:11
  4. Datei durchsuchen
    Von Skala im Forum PHP
    Antworten: 2
    Letzter Beitrag: 01.06.05, 13:26
  5. Antworten: 4
    Letzter Beitrag: 01.08.04, 13:55

Stichworte