BashBin #6: Dateien durchsuchen

Problem
Alle Dateien suchen und auflisten, welche einen bestimmten Text beinhalten.

In diesem Beispiel werden alle Dateien mit dem Namen “.forward” nach dem Text “enabled” durchsucht und in eine Datei gespeichert. Mit dem Dateinamen wird auch gleich die Zeile mit dem gesuchten Text ausgegeben.

Lösung
[root@cf]# find /home/dir */\.forward -exec grep -H "enabled" {} \; > /tmp/ForwardList.txt

Output (File)
beda1/.forward:# forwarding not enabled
beje3/.forward:# forwarding not enabled
besi1/.forward:# forwarding not enabled
bete1/.forward:# forwarding not enabled

Update
Einfacher und schneller:
[root@cf]grep -rH "enabled" /home/dir > /tmp/ForwardListe.txt

Du kannst alle Antworten zu diesem Eintrag via RSS 2.0 Feed erfolgen. Du kannst einen Kommentar hinterlassen, oder einen Trackback von deiner eigenen Seite.

4 Kommentare »

 
  • Dratir sagt:

    Noch ein paar Tips:
    1. Wieso nicht direkt am Bildschirm ausgeben lassen?
    1.5. Falls es dann zu viel Output gibt: einfach | less anhaengen :)
    2. Wenn du bei find mit -exec arbeitest zur sicherheit die {} immer in Anfuehrungszeichen setzen… Wegen den Leerzeichen etc..

    Aber der mit dem grep muss ich mir merken… koennte noch nuetzlich werden! :D

  • 1. Weil ich die Ausgabe mit einer anderen Liste vergleichen musste :)
    2. Danke für den Tipp

  • Alexander sagt:

    Noch einfacher:

    find … -exec Befehl {}

    das wichtige ist hier das am Ende, anstelle von \; (oder ‘;’ was ich gerne verwende).
    Vorteil: “Befehl” wird (meist) nur 1x aufgerufen mit möglichst vielen Parametern. Ist der flexibelere Ansatz (und damit der IMO bessere) und zeigt auch, warum so mancher diese GNUismen (also grep mit -r Parameter) “untoll” (weil nicht pirtabel und überflüssig) findet…

  • [...] Quelle: BashBin #6: Dateien durchsuchen [...]

 

Eine Antwort schreiben

XHTML: Diese Tags kannst Du benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>