Saya memiliki file yang dapat dieksekusi yang menghasilkan file teks sebagai hasilnya. Masalahnya adalah bahwa file teks keluar dengan semacam flag file biner. Hasilnya kira-kira seperti ini:
$ grep "grep string" output_file.txt
Binary file output_file.txt matches.
$ grep -a "grep string" output_file.txt
[correct results]
Beberapa bacaan mengindikasikan bahwa grep mencari karakter nol dalam ribuan atau lebih byte pertama, kemudian menentukan apakah sebuah file 'biner' atau tidak, jadi pertanyaan saya ada dua:
Apakah ada cara mudah untuk menghapus karakter nol dari file saya (saya bisa melakukan ini sebagai bagian dari post-processing saya) untuk memastikan bahwa grep bekerja dengan benar tanpa tanda -a?
Apakah ada sesuatu yang jelas harus saya cari dalam kode saya untuk mencegah karakter nol ditulis ke file? Saya telah memeriksa kode dengan seksama dan saya tidak melihat penyebab yang jelas.
.
Aku akan menebak ....
Program Anda menulis file dalam UTF-16, sebuah pengkodean Unicode yang menggunakan dua byte untuk setiap karakter. Setiap byte kedua, sebagian besar waktu, adalah nol.
akan mengubahnya menjadi UTF-8, yang paling nyaman digunakan oleh coreutils.
sumber
file myfile.txt
hanya menunjukkan file sebagaidata
.