SED 使用時のエスケープ括弧

SED 使用時のエスケープ括弧

sedを使用してファイル内のvarchar(36)の値をchar(36)に置き換えたいのですが、

sed -i ’s/varchar(36)/char(6)/g’ calls_contacts.sql

しかし、コマンドは実行されません。何が間違っているのでしょうか?

答え1

あなたがやりたいことは次のことだと思います:

sed -i 's/varchar(36)/char(36)/gi' calls_contacts.sql

3つの点を修正しました:

  • 閉店'
  • 2 番目-iを に置き換えましたgi。大文字と小文字を区別せずにグローバルにしたいのだと思います。
  • (通常モードでは括弧をエスケープする必要がないため (エスケープしてはならないため)、括弧をエスケープ解除しました。

関連情報