2011-10-05 95 views
2

如何在目录中的每个文件中查找并替换{%extends“a/b/c/d”%}与另一个{%extends“e/f/g/h”%}的每个实例?另外,如果在同一行上的声明之后有任何内容,我想保留它。在linux中搜索并替换一行?

我看过了用perl像下面这样:

perl -pi -e 's/find/replace/g' *.html 

但我不知道Perl和不知道去逃避所有的人物在我找到最好的方法/替换字符串(即{/”等)。

任何简单的解决方案?

回答

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 
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