Ich habe Binärdateien, die Text sein sollten (es handelt sich um exportierte Protokolle), aber ich kann sie nicht mit weniger öffnen (es sieht hässlich aus - es sieht aus wie eine Binärdatei). Ich habe festgestellt, dass ich es mit vi öffnen kann und ich kann es katzen (Sie werden die tatsächlichen Protokolle sehen), aber ich würde wirklich gerne durch sie blättern (ohne jedes einzelne mit vi öffnen und dann ausführen zu müssen) eine Suche). Gibt es eine Möglichkeit für mich, das zu tun?
76
grep -a
?Antworten:
Sie können
grep
die Datei trotzdem durchsuchen - es ist egal, ob es sich bei der Eingabedatei wirklich um Text handelt oder nicht. Aus 'man grep':Bitte markieren Sie die vorsichtigen Worte am Ende des zweiten Absatzes. Vielleicht möchten Sie die Ergebnisse von grep in eine neue Datei umleiten und diese mit vi / less untersuchen.
quelle
Pipe it through
strings
, wodurch der gesamte Binärcode entfernt wird und nur der Text übrig bleibt.quelle
strings
anscheinend versteht utf-8 nicht ist text.Probieren Sie
bgrep
es aus. ( Originalversion / neuere Version )quelle
\x
wie hier nicht wirklich funktionierengrep -P "\x05\x00\xc0" mybinaryfile
.bgrep "fafafafa" test_27.6.2015.bin |less
aber bekomme test_27.6.2015.bin: 00005ee4 . Ich würde annehmen, fafafafa zu bekommen , da ich dies suchte. Kein Handbuch im Mann. Irgendeine Idee warum so eine Ausgabe?grep -a
?bash: bgrep: command not found...
undNo package bgrep available
.Sie können diese drei Befehle verwenden:
grep -a <sth> file.txt
cat -v file.txt | grep <sth>
cat file.txt | tr '[\000-\011\013-\037\177-\377]' '.' | grep <sth>
quelle
Ab Grep 2.21 werden Binärdateien unterschiedlich behandelt :
Was jetzt passiert, ist, dass bei binären Daten alle Nicht-Text-Bytes (einschließlich Zeilenumbrüchen) als Zeilenabschluss behandelt werden. Wenn Sie dieses Verhalten ändern möchten, können Sie:
verwenden
--text
. Dadurch wird sichergestellt, dass nur Zeilenumbrüche Zeilenabschlusszeichen sindverwenden
--null-data
. Dadurch wird sichergestellt, dass nur Nullbytes als Zeilenabschluss verwendet werdenquelle