Saya memiliki file biner yang seharusnya berupa teks (mereka diekspor log), tetapi saya tidak dapat membukanya dengan lebih sedikit (tampilannya jelek - kelihatannya seperti file biner). Saya menemukan bahwa saya bisa membukanya dengan vi dan saya bisa mengecatnya (Anda akan melihat log yang sebenarnya), tetapi apa yang benar-benar ingin saya lakukan adalah menjelajahinya (tanpa harus membuka masing-masing dengan vi dan kemudian melakukan pencarian). Apakah ada cara bagi saya untuk melakukan itu?
76
grep -a
?Jawaban:
Anda
grep
tetap dapat menggunakan untuk mencari melalui file - tidak terlalu peduli apakah file input benar-benar teks atau tidak. Dari 'man grep':Harap tandai kata-kata hati-hati di akhir paragraf kedua. Anda mungkin ingin mengarahkan ulang hasil dari grep ke file baru dan memeriksanya dengan vi / kurang.
sumber
Pipa melalui itu
strings
, yang akan menghapus semua kode biner hanya menyisakan teks.sumber
strings
rupanya tidak mengerti utf-8 adalah teks.Berikan
bgrep
mencoba. ( rilis asli / garpu lebih baru )sumber
\x
tidak benar-benar berfungsi seperti di sinigrep -P "\x05\x00\xc0" mybinaryfile
.bgrep "fafafafa" test_27.6.2015.bin |less
tetapi mendapatkan test_27.6.2015.bin: 00005ee4 . Saya akan berasumsi mendapatkan fafafafa , karena saya sedang mencari ini. Tidak ada manual dalam manusia. Adakah yang tahu mengapa output seperti itu?grep -a
?bash: bgrep: command not found...
danNo package bgrep available
.Anda dapat menggunakan tiga perintah ini:
grep -a <sth> file.txt
cat -v file.txt | grep <sth>
cat file.txt | tr '[\000-\011\013-\037\177-\377]' '.' | grep <sth>
sumber
Dimulai dengan Grep 2.21, file biner diperlakukan secara berbeda :
Jadi yang terjadi sekarang adalah bahwa dengan data biner, semua byte non-teks (termasuk baris baru) diperlakukan sebagai terminator garis. Jika Anda ingin mengubah perilaku ini, Anda dapat:
gunakan
--text
. Ini akan memastikan bahwa hanya baris baru yang merupakan terminator barisgunakan
--null-data
. Ini akan memastikan bahwa hanya byte nol yang merupakan terminator barissumber