Rekursiv String in Dateien suchen

Diskutiere Rekursiv String in Dateien suchen im Shell-Skripte Forum im Bereich Programmieren unter Linux/Unix; Hallo zusammen, grep -r oder grep -R geht leider nicht: grep: illegal option -- r Ich möchte auf einem Unix-System alle Dateien nach...

  1. #1 fencingline, 20.11.2008
    fencingline

    fencingline Mitglied

    Dabei seit:
    21.04.2007
    Beiträge:
    37
    Zustimmungen:
    0
    Hallo zusammen,

    grep -r oder grep -R geht leider nicht:

    grep: illegal option -- r

    Ich möchte auf einem Unix-System alle Dateien nach einem bestimmten String durchsuchen. Welche Möglichkeiten habe ich?

    Gemeint ist:

    Code:
    cd /
    grep -R "Suchstring" *
    Die Shell ist eine SH-Shell.

    Besten Dank im Voraus!
    FCL
     
  2. #2 Gott_in_schwarz, 20.11.2008
    Gott_in_schwarz

    Gott_in_schwarz ar0

    Dabei seit:
    22.04.2007
    Beiträge:
    546
    Zustimmungen:
    0
    Ort:
    Niedersachsen
    Sollte eigentlich funktionieren.
    Bist du dir allerdings sicher, ob du die Suche nicht weiter eingrenzen kannst?
    Ich meine, /dev, /proc oder auch /mnt (steigt dann rekursiv in gemountete filesystems ab) zu durchsuchen ist doch bestimmt nicht notwendig, oder?
    Hm, vielleicht stören dich einfach nur die Fehlermeldungen.
    Code:
    cd /; fgrep -R "suchstring" * 2>/dev/null
    kA, das dauert aber wahrscheinlich seeeeeehr lange, bis es mal fertig ist.
    Btw, wenn "suchstring" wirklich ein Suchstring ist, und kein pattern, ist fgrep performanter (und generell angebracht).

    Und globbing mit Asterisk (*) sollte in sh eigentlich "funzen".
     
  3. #3 saeckereier, 20.11.2008
    saeckereier

    saeckereier Graue Eminenz

    Dabei seit:
    08.05.2005
    Beiträge:
    1.920
    Zustimmungen:
    0
    Ort:
    Im schönen Norden
    Was wäre denn das für ein Unix?
     
  4. #4 Gott_in_schwarz, 20.11.2008
    Gott_in_schwarz

    Gott_in_schwarz ar0

    Dabei seit:
    22.04.2007
    Beiträge:
    546
    Zustimmungen:
    0
    Ort:
    Niedersachsen
    Interessanter wäre vielleicht noch die grep Version zu kennen. (Ich hab einfach mal GNU grep vermutet.)
     
  5. #5 fencingline, 20.11.2008
    fencingline

    fencingline Mitglied

    Dabei seit:
    21.04.2007
    Beiträge:
    37
    Zustimmungen:
    0
    Ich habe die Lösung doch noch mit Hilfe von Google gefunden:

    Code:
    find / -exec grep -l "Suchstring" {} \;
    Danke dennoch für die Unterstützung!
     
  6. #6 Gott_in_schwarz, 20.11.2008
    Gott_in_schwarz

    Gott_in_schwarz ar0

    Dabei seit:
    22.04.2007
    Beiträge:
    546
    Zustimmungen:
    0
    Ort:
    Niedersachsen
    Zja, -r geht (bei dir) scheinbar nicht, aber was ist denn mit -R? "Geht nicht" ist immer so'ne diffuse (bis gar keine) Fehlermeldung. Würd mich einfach mal interessieren warum das nicht funktioniert.
     
  7. #7 fencingline, 20.11.2008
    fencingline

    fencingline Mitglied

    Dabei seit:
    21.04.2007
    Beiträge:
    37
    Zustimmungen:
    0
    Das ist das selbe:

    grep: illegal option -- R
     
  8. Ray_87

    Ray_87 Grünschnabel

    Dabei seit:
    29.08.2017
    Beiträge:
    5
    Zustimmungen:
    0
    Hallo,
    ich habe ein ähnliches Anliegen. Ich möchte aber die Dateien nur ausgegeben bekommen, wenn mehrere Strings (StringA und StringB) enthalten sind.

    gibt es sowas wie:
    Code:
    find / -exec grep -l "SuchstringA"|"SuchstringB" {} \;
     
  9. #9 fresh$free, 07.06.2018
    fresh$free

    fresh$free Mitglied

    Dabei seit:
    03.10.2013
    Beiträge:
    29
    Zustimmungen:
    0
    UND kann man normalerweise mit zwei hintereinandergeschalteten greps machen:
    Code:
    echo "SuchstringA"|grep SuchstringA | grep SuchstringB   :  findet nix
    Code:
    echo "SuchstringB"|grep SuchstringA | grep SuchstringB   :  findet nix
    Code:
    echo "SuchstringA bla bla SuchstringB"|grep SuchstringA | grep SuchstringB     : findet was
    Die Pipe öffnet aber eine Subshell, da funktioniert das find dann nicht mehr, jedenfalls auf die Schnelle fällt mir da nix ein.

    Ausserdem will man nur in Dateien suchen, deshalb würde ich noch -typ f als Schalter für find setzen,
    sonst gibts bei dirs einen Fehlermeldung.

    Ohne find, mit grep das -r kennt:
    Code:
    grep -r SuchstringA startverzeichnis| grep SuchstringB
    Allerding geht dann -l nicht mehr. Es wird ausgegeben:
    gematchte_datei:gematchte Zeile
    Das kann man dann nochmal mit sed wegparsen.

    Oder man macht
    Code:
    find startdir -type f  -exec awk -f doppelgrep.awk {}\;
    doppelgrep.awk:
    Code:
    BEGIN {
      match1=0;
      match2=0;
    }
    /SuchstringA/ {
      match1 = 1;
    }
    
    /SuchstringB/ {
      match2 = 1;
    }
    
    END {
      if ( match1 && match2 ) {
       print FILENAME
      }
    }
    
    Allerdings muss man dann sicherstellen dass awk nur Textdateien erhält, sonst gibts Fehler.
     
Thema: Rekursiv String in Dateien suchen
Besucher kamen mit folgenden Suchen
  1. linux dateien rekursiv durchsuchen

    ,
  2. grep rekursiv

    ,
  3. grep rekursiv nach string suchen

    ,
  4. linux text in dateien suchen rekursiv,
  5. mit grep unterverzeichnisse durchsuchen,
  6. textstring in verschieden dateien suchen linux,
  7. python textdateien inhalt rekursiv durchsuchen,
  8. grep string suchen rekursiv,
  9. suche text in file linux rekursiv,
  10. linux sed rekursiv txt in unterordner,
  11. rekursive suche,
  12. unix grep v,
  13. fgrep rekursiv,
  14. unix datein nach string durchsuchen,
  15. unix grep unterordner,
  16. nach string in datei suchen unix,
  17. grep dateien durchsuchen rekursiv,
  18. linux nach string in dateien suchen,
  19. unix rekursiv dateien durchsuchen,
  20. rekursiv text suchen linux,
  21. unix files rekursiv durchsuchen,
  22. linux rekursiv suche,
  23. linux suche inhalt rekursive,
  24. linux in datei nach string suchen rekursiv,
  25. wie kann man in bestimmten Dateitypen rekursiv nach String suchen unix
Die Seite wird geladen...

Rekursiv String in Dateien suchen - Ähnliche Themen

  1. Rekursiver Algorithmus mit Fibonacci Funktion (Fibo)

    Rekursiver Algorithmus mit Fibonacci Funktion (Fibo): Hallo zusammen, hat von Euch jemand eine Idee, für ein Shell Script mit einem Recrusiven Algorithmus mit einer Fibonacci Funktion? Ich will...
  2. Rekursives Auslesen über 2 Ebenen und Ausführen von mehreren Befehlen

    Rekursives Auslesen über 2 Ebenen und Ausführen von mehreren Befehlen: Hallo zusammen, mein Ziel ist das rekursive Auslesen von 2 Verzeichnisebenen und das ausführen von Befehlen auf den vorhandenen Dateien. Konkret...
  3. Symbolische Links rekursiv ändern

    Symbolische Links rekursiv ändern: Hallo, ich möchte im Unix-Filesystem in einem Ordner mit Unterordnern alle symbolischen Links ändern bzw. eine Pfadangabe im symbolischen Link...
  4. FTP-Client mit rekursiven directory listing

    FTP-Client mit rekursiven directory listing: Hallo, eigentlich sagt die Überschrift schon alles zu meiner Frage aus. Ich habe das Problem, dass ich gerne auf einem FTP die Ordner Rekursiv...
  5. Rekursives Ändern einer bestimmten Dateiendung

    Rekursives Ändern einer bestimmten Dateiendung: Hallo Leute, ich habe meine Musiksammelung komplett im Ogg-Vorbis-Format gespeichert. Seit neustem neigen aber alle möglichen Programme dazu,...
  1. Diese Seite verwendet Cookies um Inhalte zu personalisieren. Außerdem werden auch Cookies von Diensten Dritter gesetzt. Mit dem weiteren Aufenthalt akzeptierst du diesen Einsatz von Cookies.
    Information ausblenden