Я хочу заменить строку в файле несколькими строками.Я знаю, что могу использовать \n
вместо sed
, но это довольно уродливо.Я надеялся на HEARDOC.
Так что я могу сделать это, чтобы заменить строку несколькими строками:
$ cat sedtest
DINGO=bingo
$ sed -i -e "s/^DINGO.*$/# added by $(whoami) on $(date)\nDINGO=howdy/" sedtest
$ cat sedtest
# added by user on Sun Feb 3 08:55:44 EST 2019
DINGO=howdy
В команде я хочу поместить замену в новые строки, чтобы было легчечтения / понимания.До сих пор я использовал HEREDOC, когда хочу добавить новых строк в файл:
CAT << EOF | sudo tee -a file1 file2 file3
line one
line two
line three
EOF
И это хорошо сработало для добавления / добавления.Можно ли сделать что-то подобное, но вместо этого использовать вывод в качестве замены в sed
или есть какой-то другой способ сделать то, что я ищу?