Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
Dateien rekursiv nach begriffen durchsuchen?

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Sonstiges
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
dhartmann



Anmeldungsdatum: 17.09.2004
Beiträge: 25

BeitragVerfasst am: 04. Okt 2004 12:26   Titel: Dateien rekursiv nach begriffen durchsuchen?

Hi Prolinux User,

ich möchte ein kleines BASH Skript schreiben das
- alle Dateien in einem Ordner rekursiv nach einem Begriff durchsucht (alles text files)
- die zu suchenden Begriffe sollen aus einer Datei eingelesen werden
- und am Ende soll eine Ausgabe erscheinen in welchen Dateien die Begriffe enthalten sind

Mir ist da schon einiges mit cat und grep eingefallen
aber ich weiß nicht genau wie es umsetze und welche Werkzeuge ich noch dazu brauche.

Freue mich auf jedes Beispielskript!

Gruß, Diano Hartmann
 
Benutzer-Profile anzeigen Private Nachricht senden

jochen
prolinux-forum-admin


Anmeldungsdatum: 14.01.2000
Beiträge: 699
Wohnort: Jülich

BeitragVerfasst am: 04. Okt 2004 12:40   Titel:

Im Herzen ein Einzeiler:
Code:
find . -type f -name "*.txt" -print0 | xargs -0 grep -f suchbegriffe -l
find durchsucht ab dem aktuellen Arbeitsverzeichnis (.) alle normalen (-type f) Dateien mit Endung .txt (-name "*.txt") und gibt die Null-Byte-terminiert (-print0) an xargs weiter, der daraus ein (oder ggf. mehrere) grep-Kommandos zusammenbestelt. Diese greps ziehen sich ihre Suchbegriffe aus der Datei suchbegriffe (-f suchbegriffe) und geben bei Treffern nur den Namen der Datei aus (-l).

War's in etwas so etwas?

Jochen
_________________
Die grösste Lüge der EDV? "Mal eben..."
 
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen

dhartmann



Anmeldungsdatum: 17.09.2004
Beiträge: 25

BeitragVerfasst am: 04. Okt 2004 13:08   Titel:

Hey danke, das hoert sich ja recht vielversprechend an, ich dachte schon ich muss mich mit awk rumquälen Wink

Ich probiers dann mal aus!
 
Benutzer-Profile anzeigen Private Nachricht senden

dhartmann



Anmeldungsdatum: 17.09.2004
Beiträge: 25

BeitragVerfasst am: 04. Okt 2004 13:18   Titel:

find sucht also type f dateien? Was ist type f reine text dateien?
ich passe z.Z. für einen Bildungsträger das Studip System an (studip.de)
Dort ist alles in php geschrieben und in diesem System soll eine ganze Liste von Begrifflichkeiten durch andere ersetzt werden. Ne menge php files Wink

Um nicht nun jedes file per hand zu durchsuchen bietet sich es an es per skript zu machen.

So, dann mach ich mich mal an die arbeit Wink
 
Benutzer-Profile anzeigen Private Nachricht senden

dhartmann



Anmeldungsdatum: 17.09.2004
Beiträge: 25

BeitragVerfasst am: 04. Okt 2004 13:40   Titel:

Hmmm.... irgendwie funkt das nicht ganz, die Kommandozeile gibt mir immer wieder alle dateien aus...
Bist du dir sicher das die Zeile 100% funktioniert?
 
Benutzer-Profile anzeigen Private Nachricht senden

jochen
prolinux-forum-admin


Anmeldungsdatum: 14.01.2000
Beiträge: 699
Wohnort: Jülich

BeitragVerfasst am: 05. Okt 2004 7:45   Titel:

Die man-page zu find hilft Dir da weiter: Mittels der Option -type kannst Du den Typ der zu findenden Dateien einschränken.
  • -type f: Normale Dateien (files). Ob deren Inhalt reiner Text, ein Programm im ELF-Format, ein MP3 oder ein Bild im JPEG- oder PNG-Format ist, ist egal; gemeint ist hier die Sicht des Betriebssystems.
  • -type d: Verzeichnisse (directory).
  • -type b : Blockorientierte Gerätedateien (/dev/hda, /dev/sda,...)
  • -type c : Zeichenorientierte Gerätedateien (/dev/tty1, /dev/st0,...)
  • und noch ein paar mehr...
Daher habe ich auch mittels -name "*.txt" die Dateinamen auf "alle, die auf .txt enden" eingeschränkt. Wenn es sich bei Dir um PHP-Dateien handelt, dann verwende dort einfach "*.php" statt "*.txt".

Jochen
_________________
Die grösste Lüge der EDV? "Mal eben..."
 
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Sonstiges Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy