例如;
我希望仅在<img>
代码中替换 / test src路径。
但不应触及<p>test</p>
。
$ cat test.html
<img src="/test" width="18" alt="" /><br>
<p>test</p>
现在我可以执行类似的事情了。
sed -i '/test'|/hoge|g' test.html
然而,它改变了全球这个词。
答案 0 :(得分:0)
sed '/<img/s|/test|/hoge|g' test.html
适用于一行<img
代码
Sed允许s///g
替换为前缀为另一个/PATTERN/
,以将替换限制为与PATTERN匹配的行。
但你真的应该使用xml解析器来保证安全。
答案 1 :(得分:0)
sed的另一种方法:
sed -i 's|\(<img *src="/\)test|\1hoge|' test.html
使用替换字符串中的<img *src="/
捕获 \1
并进行反向引用。
以下字符串(test
)将替换为hoge
。