を見つけ、中括弧と交換SED。は、私は、このコマンドを使用しようとしています
私はエラーを取得する:
sed: -e expression #1, char 17: Invalid preceding regular expression
私は正しく、中括弧をエスケープないだろうか?
を見つけ、中括弧と交換SED。は、私は、このコマンドを使用しようとしています
私はエラーを取得する:
sed: -e expression #1, char 17: Invalid preceding regular expression
私は正しく、中括弧をエスケープないだろうか?
sed -i 's#{test1}#test2#' /example/myfile.txt
あなたはあなたがすべてで、中括弧をエスケープされていません{}
をエスケープする必要はありません。 sed
では、デフォルトの正規表現はBREです(\{
および\}
は範囲式を示します)。 test1
は範囲ではないため、BREが正しくありません。それを修正する
、あなたはバックスラッシュをドロップするか(括弧はBREではでは特別ではありません)、または同じそれを維持してのEREを使用するsedを伝える(GNUと-r
フラグは、sedはBSD/MacOSXので-E
フラグをSED)。
TIL BRE ERE。 BREは 'sed'の世界ではとても便利です。 – ericsoco
うーん...私はバックスラッシュを削除し、それは正常に動作するようです。 – atdev