【发布时间】:2019-06-27 10:53:39
【问题描述】:
我想用多行替换文件中的一行。我知道我可以在sed 替换中使用\n,但这相当难看。我希望听到 HEARDOCs。
所以我可以这样做以用多行替换该行:
$ 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 中的替换,或者是否有其他方法可以做我正在寻找的事情?
【问题讨论】:
-
请在您的问题中添加示例输入和该示例输入所需的输出。
-
第一个代码块确实有一个使用
\n的示例输入和输出。我希望实现与输入相同的输出...
标签: bash sed replace newline heredoc