sed가 인용된 문자열로 인해 예상대로 작동하지 않습니다.

sed가 인용된 문자열로 인해 예상대로 작동하지 않습니다.

's3_bucket': 'pass'를 hello로 변경해야 하는데 작동하지 않습니다.

예: echo "'s3_bucket': 'pass'" | sed 's/'s3_bucket':/hello/' 출력:
's3_bucket': 'pass'

내가 뭘 잘못하고 있는지 이해하도록 도와주세요.

답변1

인용문이 잘못되었습니다. 이 부분은 's/'s3_bucket':/hello/'쉘에 의해 합계 's/'와 결과가 인수로 해석됩니다 .s3_bucket':/hello/'s/s3_bucket:/hello/sed

노력하다

echo "'s3_bucket': 'pass'" | sed "s/'s3_bucket':/hello/"

또는

echo "'s3_bucket': 'pass'" | sed 's/'\''s3_bucket'\'':/hello/'

두 번째 버전에는 '\''큰따옴표 대신 두 개의 인접한 작은따옴표가 있습니다.

참조할 수 있는 더 많은 방법이 있습니다.이 비슷한 질문에 대한 대답.

관련 정보