2011-10-05 123 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