Suche in bestimmten Dateien - grep Frage

  1. harald13

    harald13 Thread StarterMacUser Mitglied

    Mitglied seit:
    02.04.2005
    Beiträge:
    19
    Zustimmungen:
    1
    Hallo,

    ich wüsste gerne, wie ich folgende Fragestellung in einem Kommando unterbringen kann.

    Ich suche Dateien ab einem bestimmten Verzeichnis, die einen bestimmten Wortbestandteil im Dateinnamen haben. Die gefundenen Dateien (nicht die Dateinamen) möchte ich dann grep vorwerfen damit darin nach dem String "u!" gesucht wird. Wenn da jemand einen Tipp, wie man das elegant in einer Befehlszeile unterbingen kann, wäre toll.

    ... harald
     
    harald13, 30.06.2005
  2. ApfelRalf

    ApfelRalfMacUser Mitglied

    Mitglied seit:
    14.01.2004
    Beiträge:
    642
    Zustimmungen:
    22
    find . -name file_\* -exec grep -H u! {} ";"

    Bedeutet:
    Suche ab dem aktuellen Verzeichnis (.) alle Dateien, die mit dem Namen (-name) "file_" (beachte den mit Backslash maskierten Asteriks (*)) und übergebe die Datei anschliessend an das Kommando "grep" und suche darin die Zeichenkette "u!". Vor der Ausgabe der gefundenen Kette hätte ich gerne noch den Dateinamen (-H) angezeigt, in dem der String vorkommt. Das abschliessende Semikolon muss ebenfalls maskiert, und somit vor der Shell "versteckt" werden. Daher entweder in Anführungszeichen (wie hier) oder stattdessen ein Backslash davor
     
    ApfelRalf, 30.06.2005
  3. cilly

    cilly

    find <verzeichnis> -name "*<WortbestandteilimDateinamen>*" -exec grep "u!" {} \;

    Ein Beispiel:

    find / -name "*.html" -exec grep "html" {} \;

    sucht alle Dateien .html nach Inhalt html ab.

    Wenn du case insensitive suchen möchtest, dann benutze iname anstatt name.

    Siehe hierzu:

    man find
    man grep
     
    cilly, 30.06.2005
  4. harald13

    harald13 Thread StarterMacUser Mitglied

    Mitglied seit:
    02.04.2005
    Beiträge:
    19
    Zustimmungen:
    1
    Super, vielen Dank euch beiden .....
     
    harald13, 01.07.2005
Die Seite wird geladen...