Linux 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

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\
> 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