如何在目录中的每个文件中查找并替换{%extends“a/b/c/d”%}与另一个{%extends“e/f/g/h”%}的每个实例?另外,如果在同一行上的声明之后有任何内容,我想保留它。在linux中搜索并替换一行?
我看过了用perl像下面这样:
perl -pi -e 's/find/replace/g' *.html
但我不知道Perl和不知道去逃避所有的人物在我找到最好的方法/替换字符串(即{/”等)。
任何简单的解决方案?
如何在目录中的每个文件中查找并替换{%extends“a/b/c/d”%}与另一个{%extends“e/f/g/h”%}的每个实例?另外,如果在同一行上的声明之后有任何内容,我想保留它。在linux中搜索并替换一行?
我看过了用perl像下面这样:
perl -pi -e 's/find/replace/g' *.html
但我不知道Perl和不知道去逃避所有的人物在我找到最好的方法/替换字符串(即{/”等)。
任何简单的解决方案?
可以在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
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