2016-05-31 57 views
0

我怎样才能插入一行到比赛后,在HTML文件匹配后的HTML文件,例如我试图插入此行:如何插入线使用SED

<a href="www.google.com">HERE</a> 

匹配等之后这样的:

<p id="insert_here"> 

经过一番研究,我发现桑达可用于这样的事情,这是我的尝试:

sed '/\<p id="insert_here">/<a href="www.google.com">HERE </a>' prac.html 
+0

使用此:'sed的 '/

/I \ HERE' prac.html' – sat

+0

我得到这个错误 “/

/i ...”:在i命令结尾处的\之后的额外字符 – Abugado

+0

^^从sat的评论中将'\'放在' anishsane

回答

1

要添加一条线,请使用a(用于追加)命令:

sed -i '/<a href="www.google.com">HERE<\/a>/a\ 
<p id="insert_here"> 
' prac.html 

随着GNU sed的,你可以命令后省略新行:

sed -i '/<a href="www.google.com">HERE<\/a>/a <p id="insert_here">' prac.html 
+0

好吧,我得到了第二个错误: sed:1:“/ Abugado

+0

@Abugado我更新了(在第一个命令中缺少代码) 。第二个可能不适用于某些sed版本。 – SLePort

+0

我仍然收到这个错误,sed:1:“prac.html”:在p命令结尾处的额外字符 但是,我试过这个: sed'/ < p id =“insert_here”>/a \ 这里<\/a>'prac.html 它可以工作,但它不会更改文件,它只是显示更改,我尝试使用-i,但它给出了一个错误: sed:1:“prac.html”:p命令末尾的额外字符 – Abugado

0

正确的命令是应该像 sed -e 's#<p id="insert_here">#<a href="www.google.com">HERE </a>#g' prac.html

/g来在全球范围内更换 进一步的细节读sed by example

您还可以在地方更换使用-i标志 例如:

sed -i '' 's#<p id="insert_here">#<a href="www.google.com">HERE </a>#g' prac.html 
+0

不是'是'的意思吗?我只是想添加一个新行,也仍然出现错误: sed:1:“s/

/...”:替换命令中的坏标志:'a' – Abugado

+0

你有没有测试了这个? ''中的未转义斜线会混淆sed。 –

+0

@Abugado我编辑了这个命令,请现在检查 –