Linux Sed附加行
sed是否有命令在匹配的行之后追加一行?我试着四处搜索,但对结果有点困惑 基本上我想让它匹配Linux Sed附加行,linux,sed,Linux,Sed,sed是否有命令在匹配的行之后追加一行?我试着四处搜索,但对结果有点困惑 基本上我想让它匹配 #address=/doubleclick.net/127.0.0.1 然后在下面加一行,如下所示 #address=/doubleclick.net/127.0.0.1 address=/anotherurl/ipaddress 这可能吗?您可以在sed中使用a(append)命令: $ sed -i '/^#address=\/doubleclick.net\/127.0.0.1$/a\ &g
#address=/doubleclick.net/127.0.0.1
然后在下面加一行,如下所示
#address=/doubleclick.net/127.0.0.1
address=/anotherurl/ipaddress
这可能吗?您可以在
sed
中使用a
(append)命令:
$ sed -i '/^#address=\/doubleclick.net\/127.0.0.1$/a\
> address=/anotherurl/ipaddress' file.txt
或者您可以使用s
(替换)命令:
注意:
$
和
是bash提示符。这可能适用于您:
echo "#address=/doubleclick.net/127.0.0.1"|
sed '\|#address=/doubleclick.net/127.0.0.1|a\address=/anotherurl/ipaddress'
#address=/doubleclick.net/127.0.0.1
address=/anotherurl/ipaddress
您可以在地址中使用您喜欢的任何分隔符,方法是在\
前面加上一个前缀,即\\\\124;…
对于替换命令,\
是不必要的
如果需要一个空行,则在匹配后添加一些文本,请使用:
echo "#address=/doubleclick.net/127.0.0.1"|
sed '\|#address=/doubleclick.net/127.0.0.1|a\\naddress=/anotherurl/ipaddress'
#address=/doubleclick.net/127.0.0.1
address=/anotherurl/ipaddress
在一个\之后,您点击了
,bash不会立即运行,它会等待更多的
(单引号)来匹配第一个,
@awmusic12635。如果它工作正常,请接受答案。谢谢,我在脚本中添加这个时遇到了问题。它不会在脚本中替换它,但会手动运行它
echo "#address=/doubleclick.net/127.0.0.1"|
sed '\|#address=/doubleclick.net/127.0.0.1|a\\naddress=/anotherurl/ipaddress'
#address=/doubleclick.net/127.0.0.1
address=/anotherurl/ipaddress