Если делать echo -ne something >> file, то оно сначала делает newline, а только потом добавляет строку. А мне в моём простом скрипте нужно сделать это без разрыва строки. Что тут можно придумать?
если это надо сделать разово, то можете воспользоваться тем же vim,
или mcedit.
Если постоянно... мне в голову приходит только два варианта:
или
$ cat file | tr -d \\n > newfile
но это удалит вобще все вхождения \n
если надо удалить имено последний байт,то стоит смотреть в
сторону head -c
можно наверно, что-то с sed или awk замутить, но как не знаю.
> Если мне не изменяет склероз - стандарт на язык программирования C, например.
Хм... перечитал исходный вопрос... и все дискуссию тоже... нигде
не упомянуто, что файл - это исходник на C. Или на каком другом
языке. Между строк читаешь? :-)))
Да ладно, дискутировать в общем-то не о чем. Поведение vi, при котором
он дописывает new line скорее историческими причинами.
Как говорит известная в узких кругах книга "Learning the vi Editor":
--- cut---
Finally, there is one tricky detail. Traditional vi always writes the
file with a final newline appended. When editing a binary file, this
might add one character to the file and cause problems. nvi and vim
are compatible with vi by default, and add that newline. In vim you
can set the binary option, so this doesn't happen. elvis and vile
never append the extra newline.
--- cut---
> Хм... перечитал исходный вопрос... и все дискуссию тоже... нигде не упомянуто, что файл - это исходник на C. Или на каком другом языке. Между строк читаешь? :-)))
_Ваш_ вопрос выглядел так:
> Позвольте поинтересоваться, какой же именно стандарт предписывает дописывать new line в конец файла?
Я на него ответил. Вы же не будете отрицать, что исходник на C - это текстовый файл? ;)
А по поводу исторических причин можно добавить, что, наверное, 80% всех файлов, когда-либо редактировавшихся в vi и клонах - это исходники на C/C++/shell/Perl ;-)