を持つ文字列のために、私は環境変数との二重引用符を含む文字列を交換する必要があります。正規表現SEDを使用して二重引用符や環境変数
BUCKET_FOLDER=\"dev\"
(または「DEV」のいずれかの誘導体)に変換する必要があります:
BUCKET_FOLDER=bucket1/$ID
$ ID = ABCDE、すなわち
BUCKET_FOLDER=bucket1/abcde
$のID、環境変数を展開するには、私が必要
sed -e "s/BUCKET_FOLDER=\\"(.*?)\\"/BUCKET_FOLDER=bucket1\/$ID/g" $string
が、これはその後、元の文字列に二重引用符で試合を妨げている:sedの置換式を二重引用符を配置します。
アドバイスありがとうございます。それは2つの段階で動作させることができるが、sed
にsepratorよう|
を使用1.
ありがとう、それはかなり近いです。私が持っている唯一の問題は、BUCKET_FOLDER = \ "dev \"は長い文字列の一部なので、* globのような正規表現ではすべてを長い文字列の最後に置き換えています。実際のソース文字列は 'A = \ "x \" BUCKET_FOLDER = \ "dev \" B = \ "y \"'のようになります –
もう一度閉じます。出力が今すぐBUCKET_FOLDER = bucket1/abcde \ "dev \" –
@ GarrethMcDaidはそれを修正しようとしました。これがうまくいかない場合は、私の投稿を削除することを知らせてください。 –