/ / sedの代替コマンドに異なるデリミタを使用する方法は? - sed、replace

どのようにsed代替コマンドのために異なる区切り文字を使用するのですか? - sed、replace

いくつかの設定ファイルを作成するシェルスクリプトを書いています。ファイルのいくつかのパターンを置き換えなければならず、1つのパターンはパスで置き換えなければなりません。

だから私の質問は:スラッシュの前にバックスラッシュを設定せずにパスと私のプレースホルダーwebpathを置き換える方法はありますか?

おそらくこれを行うために利用できる別のツールがありますか?

回答:

回答№1の49

代わりの正規表現デリミタをバックスラッシュで検索パターンとして使うことができます:

sed ",some/path,d"

そして、それをそのまま使用してください s コマンド:

sed "s,some/path,other/path,"

しかし、他のメタキャラクターを保護したいと思うかもしれません。これはPerlを使用するのに適しています。 quotemeta、または他のスクリプト言語の同等語

から man sed

/regexp/
正規表現に一致する行をマッチさせる regexp.

cregexpc
正規表現に一致する行をマッチさせる regexp。ザ c バックスラッシュや改行以外の文字でも構いません。

s/regular expression/replacement/flags
置換文字列を最初の文字列に置き換えますパターン空間の正規表現のインスタンス。 REと置換文字を区切るために、スラッシュの代わりにバックスラッシュや改行以外の文字を使用できます。 REと置換文字の中で、RE区切り文字自体がバックスラッシュの前にある場合は、リテラル文字として使用できます。