Вставить новую строку перед первой строкой - PullRequest
0 голосов
/ 29 ноября 2010

Я пытаюсь вставить новую строку перед первой строкой текста в файле. Единственное решение, которое я нашел до сих пор, это:

sed -e '1 i
')

Мне не нравится, когда в моем скрипте присутствует новая строка. Можно ли решить эту проблему любым другим способом, используя стандартные (GNU) утилиты UNIX?

Ответы [ 4 ]

3 голосов
/ 29 ноября 2010

Вот чистое решение sed без особых требований к оболочке:

sed -e '1 s|^|\n|'

РЕДАКТИРОВАТЬ:

Обратите внимание, что для этого должна быть хотя бы одна строка ввода (и все остальное)используя адрес строки) для работы.

3 голосов
/ 29 ноября 2010

Для разнообразия:

echo | cat - file
2 голосов
/ 29 ноября 2010

A $ перед строкой в ​​одинарных кавычках заставит bash интерпретировать escape-последовательности внутри нее.

sed -e '1 i'$'\n'
1 голос
/ 27 февраля 2017

Вы можете использовать awk:

$ awk 'FNR==1{print ""} 1' file

, который будет работать с любым количеством файлов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...