>我有几千个带有href标签的文件,如下所示:
href="../../../../file/old.html
我正在尝试从所有文件中删除它。我尝试过 sed,但它抛出错误并失败。
sed -i '/href="../../../../file/old.html"/c' *.html
sed: -e expression #1, char 11: unknown command: `.'
建议请...
你的表达并不完全正确。你需要说sed 's/pattern/replacement/g' file
.或者,如果模式中/
并且您不想转义它,则使用另一个分隔符,sed 's#pattern#replacement#g' file
(或任何其他)。
此外,的使用可能会误导
sed
,因为它会转义后面的字符。如果你想要一个字面上的,你必须逃避它。
所以你需要这样说:
sed 's#href="../../../../file/old.html"#c\#g' file
# ^
# double so that you have a literal
让我们测试一下:
$ cat a
hello <a href="../../../../file/old.html">bye</a>
hehehe
$ sed 's#href="../../../../file/old.html"#c\#g' a
hello <a c>bye</a>
hehehe