次のファイルがあります。テスト.txtコンテンツ:
- name: MONGODB_HOST
value: {{MONGODB-HOST}}
変えたい{{MONGODB - ホスト}}次の環境変数を使用してください。
MONGODB_HOST=server.dev.example,server2.dev.example
コマンドは次のとおりです。
/bin/sed -i 's,{{MONGODB-HOST}},'"$(MONGODB_HOST)"',' "test.txt";
次のように失敗します。
/bin/sed: -e expression #1, char 56: unknown option to `s'
私が去る場合:
MONGODB_HOST=server.dev.example
効果がある失敗の理由を見つけるのに役立ちますか?
答え1
コマンドで記号をsed
使用して,
フィールドを区切ります。代替項目には対応する記号も含まれているので、sed
これを見るときはフィールド区切り記号だと思います。最後に、「実際の」フィールド区切り文字が表示され、その後に認識できない内容が表示されます。
別のフィールド区切り文字を試してみるのが/
一般的なオプションです。
/bin/sed -i 's/{{MONGODB-HOST}}/'"${MONGODB_HOST}"'/' "test.txt"