У меня есть исполняемый файл, который генерирует текстовый файл в качестве вывода. Проблема в том, что текстовый файл выходит с каким-то флагом двоичного файла. Результат примерно такой:
$ grep "grep string" output_file.txt
Binary file output_file.txt matches.
$ grep -a "grep string" output_file.txt
[correct results]
Некоторое чтение показало, что grep ищет нулевой символ в первой тысяче байтов или около того, а затем определяет из этого, является ли файл «двоичным», поэтому мой вопрос состоит из двух частей:
Есть ли простой способ убрать нулевые символы из моих файлов (я могу сделать это как часть моей постобработки), чтобы убедиться, что grep работает правильно без флага -a?
Есть ли что-то очевидное, что я должен искать в своем коде, чтобы предотвратить запись нулевых символов в файл? Я просмотрел код довольно тщательно и не вижу никаких явных виновников.
,