Dateien nach Strings durchsuchen

Diskutiere Dateien nach Strings durchsuchen im Shell-Skripte Forum im Bereich Programmieren unter Linux/Unix; Hallo zusammen, ich möchte gerne mehrere Dateien (mehrere hundert Dateien mit stark verzweigter Verzeichnisstruktur) nach einem gewissen Inhalt...

  1. kivio

    kivio Grünschnabel

    Dabei seit:
    05.04.2006
    Beiträge:
    6
    Zustimmungen:
    0
    Hallo zusammen, ich möchte gerne mehrere Dateien (mehrere hundert Dateien mit stark verzweigter Verzeichnisstruktur) nach einem gewissen Inhalt durchsuchen und ausgeben, wie oft dieser Inhalt auftaucht. Ich habe es mit cat versucht, was auf eine einzelne Datei angewendet auch gut funktioniert.
    Z.B. so:

    cat file liefert:
    linux
    netbsd
    dragonflybsd
    freebsd
    openbsd
    solaris

    cat file | grep bsd | wc -l liefert wie gewünscht 4.

    Leider funktioniert cat nicht auf (Unter)Verzeichnisse. Hat jemand eine Idee?
     
  2. Anzeige

    Anzeige

    Wenn du mehr über Linux erfahren möchtest, dann solltest du dir mal folgende Shellkommandos anschauen.


    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 supersucker, 05.04.2006
    supersucker

    supersucker Foren Gott

    Dabei seit:
    21.02.2005
    Beiträge:
    3.873
    Zustimmungen:
    0
    du könntest es mit find probieren

    find kennt z.b. den parameter "exec".

    also mit find die verzeichnisse durchgehen, dann cat ausführen und das an grep pipen.

    es gibt aber bestimmt noch wesentlich sauberere und bessere lösungen für sowas.
    mir mag nur keine einfallen.
     
  4. #3 Wolfgang, 05.04.2006
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo

    Wenn du nur wissen willst wie oft das Suchwort gesamt in allen Datein vorkommt, dann geht es mit GNU grep z.B. so:
    Code:
    for i in $(find /home/wolle/ -type f -name "*txt" -exec grep -c "Suchwort" {} \;);do ALL=$(($ALL + $i ));done; echo Gesamt $ALL mal gefunden
    
    Wenn du wissen willst in wievielen dateien das Suchwort vorkommt dagegen (mit GNU grep)
    Code:
    ALL=0;
    for i in $(find /home/wolle/ -type f -name "*txt"); do B=$(grep -q "SUCHWORT" "$i");if [ $? -gt 0 ]; then ALL=$(($ALL+1));fi;done; echo Gesamt  $ALL Dateien mit Suchwort gefunden
    
    Gruß Wolfgang
    PS Ich habe hier nur Dateien mit der Endung txt durchsucht!
     
  5. kivio

    kivio Grünschnabel

    Dabei seit:
    05.04.2006
    Beiträge:
    6
    Zustimmungen:
    0
    Danke Wolfgang! Genau das habe ich gesucht!
     
  6. #5 AlexNbg, 13.03.2008
    AlexNbg

    AlexNbg Anfaenger

    Dabei seit:
    13.03.2008
    Beiträge:
    2
    Zustimmungen:
    0
    Ort:
    USA
    Hi,

    also der erst Code funktioniert einwandfrei, aber der zweit hat irgendwie komische auswirkungen. Der erste finde 3 Dateien, der zweite 120?

    Wie muss ich denn den Code umschreiben, damit ich die Dateien ausgegeben bekomme, in denen das Suchwort enthalten ist?

    Danke
    Gruss


    Alex
    (Beginner :) )
     
  7. #6 Gott_in_schwarz, 13.03.2008
    Gott_in_schwarz

    Gott_in_schwarz ar0

    Dabei seit:
    22.04.2007
    Beiträge:
    546
    Zustimmungen:
    0
    Ort:
    Niedersachsen
    Sieht so aus, als ob Wolfgang da die if-Abfrage "falsch herum" gemacht hat. Außerdem versteh ich nicht, wieso er das Ergebnis von dem "grep -q" extra in eine Variable packt (sollte ja eigentlich eh nie was ausgeben..), wayne. Wenn du einfach die Dateien haben willst, in denen das Suchwort drin vorkommt, nimm den "-l" switch: (aus "grep --help": -l, --files-with-matches only print FILE names containing matches)
    Code:
    grep -rl 'suchausdruck' /path/to/teh/files/
    das "-r" steht für "recursive" und durchsucht Unterverzeichnisse rekursiv. Willst du einfach nur die Anzahl der Treffer haben, kannst du dies auch einfach in wc (word count) mit dem "-l" switch pipen: (l für lines, also word count lines zählt die Zeilen der Ausgabe, die in es gepipet wird..)
    Code:
    grep -rl 'suchausdruck' /path/to/teh/files/|wc -l
     
  8. #7 AlexNbg, 13.03.2008
    AlexNbg

    AlexNbg Anfaenger

    Dabei seit:
    13.03.2008
    Beiträge:
    2
    Zustimmungen:
    0
    Ort:
    USA
    Danke! Hat funktioniert.
     
Thema: Dateien nach Strings durchsuchen
Besucher kamen mit folgenden Suchen
  1. linux dateien nach inhalt durchsuchen

    ,
  2. unix datei durchsuchen

    ,
  3. unix dateien durchsuchen

    ,
  4. unix dateiinhalt suchen,
  5. linux datei nach string durchsuchen,
  6. dateien nach string durchsuchen unix,
  7. python string in datei suchen,
  8. linux datei nach inhalt durchsuchen,
  9. dateien nach inhalt durchsuchen und verschieben,
  10. dateien mit grep suchen und verschieben,
  11. mit grep dateien rekursiv durchsuchen und verschieben,
  12. shell skript alle dateien nach string durchsuchen und treffer kopieren ,
  13. linux inhalt von dateien durchsuchen,
  14. unix string in mehreren dateien finden,
  15. linux string suchen,
  16. linux files mit xarg nach inhalte durchsuchen,
  17. shell dateien durchsuchen,
  18. python datei nach mehreren strings durchsuchen,
  19. php dateien nach inhalt durhcsuchen,
  20. shell skript datei nach inhalt durchsuchen,
  21. linux alle dateien nach bestimmten Inhalt durchsuchen ,
  22. linux Binärdateien nach Strings durchsuchen,
  23. linux mehrer Dateien nach einem string durchsuchen,
  24. datei suchen bsd,
  25. datei nach inhalt durchsuchen luinux
Die Seite wird geladen...

Dateien nach Strings durchsuchen - Ähnliche Themen

  1. Dateien nach Bestandteil im Namen verschieben

    Dateien nach Bestandteil im Namen verschieben: Hallo zusammen, es gibt ja schon einige Threads zum automatisierten Verschieben nach exif Datum etc. Ich versuche es einfacher anhand eines...
  2. Nach Inhalt in Dateien suchen und den String aus Datei löschen

    Nach Inhalt in Dateien suchen und den String aus Datei löschen: Hallo alle miteinander, ich bin auf der Suche nach einer Möglichkeit nach Dateien mit einem bestimmten Inhalt zu suchen. Wenn der String in der...
  3. Dateien nach Datum finden

    Dateien nach Datum finden: Hallo zusammen, ich würde gerne Wissen wie ich am einfachsten Dateien nach einem bestimmten Datum in einem Verzeichnis suchen kann. Das...
  4. Dateien von Linux nach Win verschieben und doppelte Dateien automatisch umbenennen.

    Dateien von Linux nach Win verschieben und doppelte Dateien automatisch umbenennen.: Also unter Linux können Namen von Dateien Zeichen in gross oder Kleinschrift haben und werden dennoch als unterschiedliche Dateien erkannt. Unter...
  5. Dateien von Linux nach Win verschieben und konvertieren.

    Dateien von Linux nach Win verschieben und konvertieren.: Hallo, ich würde gerne Dateien vom ext3, nach NTFS, verschieben und dabei die Namen konvertieren, so wie die Inhalte von Textdateien. Am Besten...
  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