2012-02-09 36 views

答えて

22
sed -i 's#{test1}#test2#' /example/myfile.txt 

あなたはあなたがすべてで、中括弧をエスケープされていません{}

21

をエスケープする必要はありません。 sedでは、デフォルトの正規表現はBREです(\{および\}は範囲式を示します)。 test1は範囲ではないため、BREが正しくありません。それを修正する

、あなたはバックスラッシュをドロップするか(括弧はBREではでは特別ではありません)、または同じそれを維持してのEREを使用するsedを伝える(GNUと-rフラグは、sedはBSD/MacOSXので-EフラグをSED)。

+0

TIL BRE ERE。 BREは 'sed'の世界ではとても便利です。 – ericsoco

関連する問題