Вот мой сценарий:bash - Как заменить строки в переменной?
my_var="foo
bar
baz"
echo ${my_var//\n/\\n}
Я хочу, чтобы заменить все строки, поступающие с \\n
.
Однако вот что у меня есть:
foo bar baz
Что мне не хватает?
Вот мой сценарий:bash - Как заменить строки в переменной?
my_var="foo
bar
baz"
echo ${my_var//\n/\\n}
Я хочу, чтобы заменить все строки, поступающие с \\n
.
Однако вот что у меня есть:
foo bar baz
Что мне не хватает?
Я думаю, что это делает то, что вы хотите:
$ echo "${my_var//$'\n'/\\n}"
foo\nbar\nbaz
Есть две важные вещи, чтобы отметить:
echo
печатает каждый из своих аргументов, разделенных одним пробелом.$'\n'
для строки стиля C, чтобы получить символ новой строки в поле часть расширения.Это работает:
$ echo "${my_var//
/\\n}"
foo\nbar\nbaz
Соответствующий вывод: Для того, чтобы вставить буквальный перевод строки в любом месте в команде, не запуская его, вы можете нажать Ctrl-VCtrl-Enter.