/bin/sed: -e 式 #1、文字 56: 's' の不明なオプション [重複]

/bin/sed: -e 式 #1、文字 56: 's' の不明なオプション [重複]

次のファイルがあります。テスト.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"

関連情報