отображать текст с новой строкой в ​​bash

35

Я хотел бы добавить текст в файл. Так я написал в Bash

echo text >> file.conf

Однако это не покидает новую строку. Так что я могу сделать это только один раз. Как мне добавить новую строку?

Джон Альбец
источник
5
Что вы имеете в виду? Дополнительный перевод строки? echoдобавляет новую строку по умолчанию.
Приостановлено до дальнейшего уведомления.
4
echoпо умолчанию оставляет новую строку - вам нужно оставить две? Кроме того, если вы запускаете это в системе Linux и открываете файл в системе Windows или Mac, убедитесь, что ваш редактор поддерживает символы новой строки * nix, или он будет отображаться в одной строке, даже если он в нескольких строках.
Дарт Андроид

Ответы:

79

Опция 1:

% echo -e "text\n" >> file.conf

вариант 2:

% ( echo text ; echo "" ) >> file.conf

вариант 3:

% echo text >> file.conf
% echo ""  >> file.conf
Акира
источник
7
Вы можете удалить пустой аргумент ( echo ""=> echo). Кроме того, опция 4:, echo $'text\n'которая полезна для любой команды, так как $''интерпретируется bash.
7

Я думаю, что правильный ответ должен быть, что ваша команда

эхо-текст >> file.conf

добавляет лишнюю строку, но после нового текста, а не до.

Я предполагаю, что вы хотите добавить дополнительную строку перед этим текстом, возможно, потому что ваш исходный файл не заканчивается новой строкой. В этом случае вы могли бы использовать

echo -e "\ ntext" >> file.conf

вместо этого, поскольку -eопция позволяет использовать \nсимвол новой строки .

N.Gutierrez
источник
3

Просто чтобы добавить в ответ Акиры

Вариант 4:

используйте ctrl-v ctrl-mкомбинации клавиш дважды, чтобы вставить два управляющих символа новой строки в терминал. Ctrl-v позволяет вставлять управляющие символы в терминал. Вы можете использовать клавишу ввода или возврата вместо ctrol-m, если хотите. Он вставляет то же самое.

Это выглядит как echo text^M^M >> file.conf

Джеймс Т
источник
2
Если вам нужен перевод строки вместо возврата каретки (linux / unix), попробуйте echo "text^J^J" >> file.confнабрать ^ J, чтобы вставить буквально новую строку, просто убедитесь, что ставите кавычки, и это будет хорошо.
Дарт Андроид