Кажется, Vim неправильно обрабатывает обратную косую черту как особую, даже если обратная косая черта ничего не делает внутри одинарных кавычек. Что показывает :set syntax
? Мой Vim правильно все окрашивает с помощью syntax=sh
, так что, возможно, ваш файл не воспринимает ваш файл как сценарий оболочки. (Интересно, что вы можете заметить, что подсветка синтаксиса Stack Overflow тоже ошибается.)
Если это так, попробуйте добавить строку shebang, например #!/bin/bash
вверху.
Что бы это ни было, более простой способ добавить новую строку в конце - просто повторить ее. Это избавляет от неэффективности sed
сканирования по всему входному потоку, чтобы найти EOF.
{ tr '\r' '\n' < test.txt; echo; } > test_tmp