Здесь очень поздно, но я только что столкнулся с одной ошибкой в обработке файлов, которая возникла из-за того, что файлы не заканчивались пустым переводом строки. Мы обрабатывали текстовые файлы с sed
, а sed
опускал последнюю строку в выводе, что приводило к неверной структуре json и отправляло остальную часть процесса в состояние отказа.
Все, что мы делали, было:
Существует один пример файла: foo.txt
с некоторым содержанием json
внутри.
[{
someProp: value
},
{
someProp: value
}] <-- No newline here
Файл был создан на машине вдов, и оконные сценарии обрабатывали этот файл с помощью команд powershall. Все хорошо.
Когда мы обрабатывали один и тот же файл, используя команду sed
sed 's|value|newValue|g' foo.txt > foo.txt.tmp
Недавно сгенерированный файл был
[{
someProp: value
},
{
someProp: value
и boom, он завершил работу остальных процессов из-за неверного JSON.
Так что всегда полезно заканчивать свой файл пустой новой строкой.