Как и все другие инструменты Unix, Vim считает \n
ограничителем строки , а не разделителем строки .
Это означает, что перевод строки после последний фрагмент текста будет считаться частью последней строки и не будет показывать дополнительную пустую строку.
Если нет вершинного перевода строки, Vim вместо этого отобразит [noeol]
в строке состояния, когда файл загружен:
foo
~
~
~
~
~
"file" [noeol] 1L, 3C 1,1 All
^---- Here
Таким образом, нет, строка перевода определенно является частью вашего файла и не добавляется bash каким-либо образом.
Если вы хотите удалить все трейлинг-линии , вы можете сделать это как побочный эффект расширения команды:
printf '%s' "$(<file1)" >> newfile
Этот кран t поддерживает Tron (также некоторые другие сети)