2011-10-05 11 views
2

ディレクトリ内のすべてのファイルで{%extend "a/b/c/d"%}のすべてのインスタンスを別の{%extend "e/f/g/h"%}で見つけて置き換える方法はありますか?また、同じ行の文の後ろに何かが来たら、私はそれを保持したいと思います。Linuxでの検索と置き換えは?

私は次のようにPerlを使用しての上に見てきました:

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

をしかし、私はPerlを知らないし、私の検索/置き換え内のすべての文字をエスケープするについて行くための最善の方法を知りませんあなたはPerlのs/find/replace/g構文 に/以外の文字を使用することができます文字列(すなわち{。/、」、など)。

どれでも簡単に解決?

答えて

5

ので、あなたはすべての楽しみがでスラッシュエスケープする必要はありません。 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 
関連する問題