다음 파일이 있어요테스트.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"