如何在目录中的每个文件中找到并替换{%extends“a / b / c / d”%}的每个实例与另一个{%extends“e / f / g / h”%}?此外,如果在同一行的声明之后发生任何事情,我想保留它。
我已经看过使用perl,如下所示:
perl -pi -e 's/find/replace/g' *.html
但是我不知道perl并且不知道在我的查找/替换字符串中转义所有字符的最佳方法(即{。/,“等)。
更简单的解决方案?
答案 0 :(得分:5)
您可以在perl的/
语法中使用s/find/replace/g
以外的某些字符
所以你不必逃避a/b/c/d
中的所有正斜杠:
perl -pi -e 's|{% extends "a/b/c/d" %}|{% extends "e/f/g/h" %}|g' *.html
答案 1 :(得分:2)
sed -i -e 's/{% extends "\/a\/b\/c\/d"/{% extends "\/e\/f\/g\/h/g"' *.html
或
sed -i -e 's|{% extends "a/b/c/d"|{% extends "e/f/g/h"|g' *.html