Я использую C для анализа большого плоского файла и вывода соответствующих строк в выходной файл. Выходной файл должен содержать около 70 000 строк.
Если я открою файл в gedit, он отобразится точно так, как ожидалось, с правильным количеством строк и длиной строк.
Однако запуск wc -l <file>
возвращает 13 156. Как и grep -c "" <file>
.
tail <file>
возвращает последние 10 строк, которые я вижу в gedit. head <file>
возвращает первые 10 строк. Но tail -n +8000 | head -n 1
, который должен вернуть 8000-ю строку, возвращает текст, который я вижу в строке 34804 в gedit.
Я ожидал бы таких результатов, если бы в файле отсутствовали символы новой строки. Но у gedit, похоже, нет проблем с этим. Кроме того, wc -L <file>
, отображающий максимальную длину строки, возвращает 142 байта, как и ожидалось. Размер файла чуть больше 9 000 000 байт, как и ожидалось.
Если wc -L <file>
= 142, а wc -c <file>
= 9046609, то как может wc -l <file>
= 13156?
Кто-нибудь знает, что я сделал неправильно при записи в этот файл?