ADMIN-Tipp: Suchen in Texten

Jede Woche erscheint in unserem Newsletter ein neuer ADMIN-Tipp. Eine Sammlung aller Tipps finden Sie im Archiv der ADMIN-Tipps.

Wenn man zu viel findet kommt man auch nicht weiter. Das kennt man aus dem Internet aber auch vom Unix-Kommando find. Dieser ADMIN-Tipp stellt einen doppelten Filter vor, der den anfallenden Datenmüll reduzieren kann.

Sucht man mit find nach einem Textschnipsel, erkauft man sich schnell den Nachteil, dass der String auch in binären Dateien gefunden wird: In Zip-Files, in ISO-Images, in TAR-Archiven und so weiter. Zum Beispiel:

jcb@hercules:~$ find / -type f -exec grep -l "linux" {} \;

...
/home/jcb/Downloads/Leo-4.10-final.zip
/home/jcb/Downloads/websec-1.9.0.tar
/home/jcb/Downloads/alt/rhel-server-6.2-x86_64-dvd.iso

Diese Einträge interessieren aber eigentlich nicht, wie könnte man sie ausklammern? Das klappt zum Beispiel, indem man einen weiteren Filter in Reihe schaltet:

jcb@hercules:~$ find / -type f -exec grep -l "linux" {} \; -exec file {} \; | grep text | cut -d ':' -f1

Das dauert merklich länger, denn jetzt werden für jede Fundstelle zusätzlich die Linux Kommandos file und grep ausgeführt. Dafür listet das Find-Kommando nun nur noch solche Treffer, bei denen der mit file ausgegebene MIME-Type der Fundstelle das Wort "text" enthält.  Auf diese Weise erhält man nur Ergebnisse aus reinen Textdateien und klammert alle Binärdaten aus.

25.09.2012

Ähnliche Artikel

  • ADMIN-Tipp: Find-Tutorial (2)

    Nachdem der erste Teil des Find-Tutorial die Basics des Programms erklärt hat, soll es dieses Mal darum gehen, wie man die gefundenen Dateien weiterverarbeiten kann.

  • ADMIN-Tipp: Einzeilerparade

    Gerade unter Kommandozeilenjüngern und Skript-Programmierern gelten sie als Ikonen der Effizienz: Einzeiler. Zuweilen führt das Bemühen, möglichst komplexe Funktionen mit lediglich einer Handvoll Zeichen zu steuern, zu eher skurrilen Resultaten, aber einige Shell-Einzeiler sind tatsächlich praktisch. Hier sind unsere Top Ten.

  • ADMIN-Tipp: Schneller suchen als find

    Unter Linux ist find das bewährte Tool für eine Suche nach Dateien. Es kann flexibel mit regulären Ausdrücken und verschiedenen Suchtiefen umgehen oder eine Datumsrechnung einbeziehen. Allerdings hat es einen Nachteil: Speziell bei großen Volumes ist es prinzipbedingt sehr zeitintensiv, da es immer alle Files im Dateisystem aufsuchen und vergleichen muss.

  • ADMIN-Tipp: Find-Tutorial (1)

    Mit dem Find-Befehl lassen sich Dateien und Verzeichnisse auf einem Unix-System suchen. Dieser ADMIN-Tipp stellt die wichtigsten Optionen dieses leistungsfähigen Kommandos vor.

  • ADMIN-Tipp: Grep mit Grips

    Wie man mit grep wirklich nur das ausfiltert, was man haben will.

Artikel der Woche

Loadtests ohne Server

Für Loadtests der eigenen Server bietet sich die Cloud an, denn kurz getaktet lassen sich dort viele Rechnerinstanzen starten, die das eigene Budget nur wenig belasten. Noch flexibler, günstiger und besser skalierbar sind Tests mit einer Serverless-Infrastruktur wie AWS Lambda. Wir führen vor, wie Sie dort mit Serverless Artillery eigene Loadtests starten. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Container

Wie setzen Sie Container ein?

  • Gar nicht
  • Docker standalone
  • Docker mit Kubernetes
  • Docker mit Swarm
  • Docker mit anderem Management
  • LXC/LXD
  • Rocket
  • CRI-O auf Kubernetes
  • Container auf vSphere
  • Andere (siehe Kommentare auf der Ergebnisseite)

Google+

Ausgabe /2018