grep

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von tobfred, 06.09.2007.

  1. #1 tobfred, 06.09.2007
    tobfred

    tobfred Grünschnabel

    Dabei seit:
    06.09.2007
    Beiträge:
    5
    Zustimmungen:
    0
    Hallo,

    ich hab ne Frage zu grep. Bin absoluter Neuling und krieg das nicht gebacken und bin irgendwie am verzweifeln.

    Ich will aus ner Festplatte alle Dateien eines bestimmen Types nach einem Wort durchsuchen das drin und einem das nicht drin ist.

    z.B. alle *.cs Dateien die das Wort <example> drin haben aber <code> fehlt (das ist nicht nur das Beispiel das ist mein Problem ^^)

    Das Ergebnis soll in irgendeiner Datei (txt oder aehnliches) mit Pfad Angaben gespeichert werden (also /verzeichnis1/verzeichnisxz/dateiname)

    Kann mir da jemand helfen oder muss ich mich erschiessen?
    (PS: OS ist XP benutze cygwin)

    Viele Gruesse,
    tobfred
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 angelsfall, 06.09.2007
    Zuletzt bearbeitet: 06.09.2007
    angelsfall

    angelsfall Routinier

    Dabei seit:
    09.05.2005
    Beiträge:
    315
    Zustimmungen:
    0
    Ort:
    Berlin
    Code:
    find / -type f -iname '*.cs' -exec grep -l 'example' {} >> files.log \;
    
    {edit}
    Achso, mit cygwin kenne ich mich nicht aus, da weiss ich nicht, ob das funktioniert.
     
  4. #3 tobfred, 06.09.2007
    tobfred

    tobfred Grünschnabel

    Dabei seit:
    06.09.2007
    Beiträge:
    5
    Zustimmungen:
    0
    Und wie wuerde ich es hinkriegen das er von diesen Dateien die <example> drin haben die rauswirft die das tag <code> haben (anders: die dateien finden die <code> nicht haben)

    was ansich das eigentliche hauptproblem von meinem Problem-Paket ist
     
  5. smg

    smg Regex Fetischist

    Dabei seit:
    20.05.2007
    Beiträge:
    195
    Zustimmungen:
    0
    Ort:
    /home/stephan/
    Grep ausdruck negieren, -v
     
  6. #5 tobfred, 06.09.2007
    Zuletzt bearbeitet: 06.09.2007
    tobfred

    tobfred Grünschnabel

    Dabei seit:
    06.09.2007
    Beiträge:
    5
    Zustimmungen:
    0
    das geht net weil mir das nur die zeilen rausgibt ich aber den dateinamen mit pfad brauche
    bzw. er gibt mir nur ein leeres dokument aus


    PS: das was ich will muss ja auch net ueber grep erreicht werden, fuer andere moeglichkeiten bin ich gerne offen
     
  7. #6 Wolfgang, 06.09.2007
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    Cygwin und XP sind hier eigentlich OT.
    Hier geht es um echte Shell!
    Deshalb mein Vorschlag unter Vorbehalt.
    Wie deine Pseudoshell mit den entsprechenden Optionen umgeht, kann ich nicht sagen.

    Dazu musst du dann selbst die Hilfeseiten (Manpage) deiner verwendeten Programme studieren.

    Da du wahrscheinlich auch mit häßlichen Leerzeichen in Dateinamen rechnen musst (Ist unter Windows ja oft der Fall), schlage ich folgendes vor:
    Gehe ich richtig, dass du nur die Dateinamen willst?

    Code:
    find /path/ -type f -iname "*txt" -print0|xargs -0 -n1 grep -Zl "ichkommvor"|xargs -n1 grep -L "ichkommnichtvor" >ergebnisfile
    
    Gruß Wolfgang
     
  8. #7 tobfred, 06.09.2007
    Zuletzt bearbeitet: 06.09.2007
    tobfred

    tobfred Grünschnabel

    Dabei seit:
    06.09.2007
    Beiträge:
    5
    Zustimmungen:
    0
    Trotz der man bin ich ja am verzweifeln :)

    Allerdings funktioniert dein geposter Befehl BESTENS!!!

    VIELEN VIELEN DANK!
    ----------------------------
    Zu frueh gefreut :-(
    In meinem Testverzeichnis gings
    In dem eigentlichen Verzeichnis nicht :-(

    grep: unknown directories method

    kennt jmd. diese fehlermeldung?
     
  9. #8 angelsfall, 06.09.2007
    angelsfall

    angelsfall Routinier

    Dabei seit:
    09.05.2005
    Beiträge:
    315
    Zustimmungen:
    0
    Ort:
    Berlin
    Oha, die andere Anforderung hatte ich ganz übersehen. Hätte ich mit meinem Wissen so aber glaube ich auch gar nicht hinbekommen.

    Danke auch von mir an Wolfgang, wieder was gelernt! :)
     
  10. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  11. #9 Wolfgang, 06.09.2007
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Unter der Bash funktioniert das bei mir.
    Aber wahrscheinlich macht deine Hilfsshell das Redirect nicht mit.
    Eventuell hilft hier am Ende die Option -i (wenn dein grep das kennt)

    Code:
    find /path -type f -iname "*txt" -print0|xargs -0 -n1 grep -Zl "wolle"|xargs -0 -n1 -ik grep -L "Kurseinheiten" k > ergebnisfile
    
     
  12. #10 tobfred, 07.09.2007
    tobfred

    tobfred Grünschnabel

    Dabei seit:
    06.09.2007
    Beiträge:
    5
    Zustimmungen:
    0
    hmm am beispiel funktioniert es wieder :-)
    wenn ich z.b. nach "example" such dann muss ich doch einfach nur "\<example\>" schreiben oder?
     
Thema:

grep

Die Seite wird geladen...

grep - Ähnliche Themen

  1. Kurztipp: Unerwünschte grep-Ausgaben vermeiden

    Kurztipp: Unerwünschte grep-Ausgaben vermeiden: Selbst aus altbekannten Programmen kann man oft noch einiges mehr herausholen - man muss sich nur einmal gründlich mit ihnen auseinandersetzen....
  2. GNU Grep 2.19 freigegeben

    GNU Grep 2.19 freigegeben: Von dem Textsuchprogramm GNU Grep ist jetzt Version 2.19 erschienen, die um durchschnittlich zehn Prozent schneller als die Vorgängerversion...
  3. KWin 4.90.1 wartet auf Bugreports

    KWin 4.90.1 wartet auf Bugreports: Martin Gräßlin, Maintainer des KDE-Fenstermanagers, hat den Code für KWin/5 als für gut genug befunden, um ihn im erweiterten Kreis testen zu...
  4. grep Ausgabe an ls übergeben

    grep Ausgabe an ls übergeben: Kann ich die Ausgabe von grep (es sind dateinamen des lokalen verzeichnisses) irgendwie gleich weiterpipen zu ls? Also so das ich zu den...
  5. Grep bis zum ersten Vorkommen

    Grep bis zum ersten Vorkommen: Hallo Zusammen, ich habe ein kleines Problem. :) Die Ausgangssituation ist folgende: Der String...