Ich habe eine Reihe von Binärdateien und ich weiß, dass es in diesen Binärdateien Zeichenfolgen gibt, die ich finden möchte.
Ich möchte Folgendes tun:
grep -lir "the string I am looking for"
und eine Liste aller Binärdateien in einem bestimmten Verzeichnis abrufen, die diese Zeichenfolge enthalten, aber grep -lir
anscheinend nicht mit diesen Dateien funktionieren.
Gibt es einen Befehl, der diese Art der Suche vom Terminal aus ausführen kann?
ack
die Selbstbeschreibung falsch ? (im Handbuch) "ack 2.x durchsucht jede reguläre, nicht-binäre Datei, die nicht explizit ignoriert wird [von blah blah]" Es hört sich also so an, als ob ack 2.x das Lesen einer Datei immer noch vorzeitig beenden sollte, wenn der Inhalt angezeigt wird binär.ack grep /bin/grep
Sie es und Sie erhalten das Ergebnis. Ich habe meine Antwort aktualisiert, um Verwirrung zu vermeiden.Der Befehl
strings
extrahiert alle ASCII-Daten aus einer Datei. Wenn Sie diese danngrep
ausgeben, können Sie nach Ihren Daten suchen:quelle
strings
, lesen Sie hier für weitere Details.strings -f
wäre dies angemessener.Bei Ihrer Frage geht es darum, Binärdateien zu finden, die ein Muster enthalten (und wir haben bereits sehr gute Antworten!). Ergänzend möchten wir vielleicht die Vorkommen besorgen.
Ich benutze oft
einen umgebenden Kontext von 20-Zeichen zu bekommen.
quelle