문자열에 값 추가

문자열에 값 추가

다음과 같은 줄이 많은 큰 bash 파일이 있습니다.

... --env COMP_LABELS="service:service1" ...

service1은 각 행마다 다릅니다. (때때로 service:mgmt또는 service:admin).

"닫는 따옴표( ) 앞에 다음 문자열을 추가하는 일부 명령(아마도 sed)을 생성하려고 합니다 ,branch:$branch.

따라서 첫 번째 예에서는 다음과 같습니다.

... --env COMP_LABELS="service:service1,branch:$branch" ...

할 수 있나요? 먼저, 감사합니다!

(비슷한 것을 시도했지만 sed -i 's/OMP_LABELS=\"service:.*\"/<not sure what to put here since I need to the entire word>/g' filename어떻게 달성하는지 모르겠습니다)

답변1

"sed를 사용하면 첫 번째 문자 다음에 문자가 아닌 일련의 문자를 간단히 일치시킬 수 있습니다 ".

$ echo '... --env COMP_LABELS="service:service1" ...' | 
    sed 's/COMP_LABELS="[^"]*/&,branch:$branch/'
... --env COMP_LABELS="service:service1,branch:$branch" ...

이는 /COMP_LABELS="[^"]*/문자열 COMP_LABELS="뒤에 0개 이상의 비 "문자( ^부정 연산자)가 오는 것과 일치한 다음 /&,branch:$branch/LHS에서 일치된 것( &역참조)으로 대체하고 그 뒤에 문자열이 옵니다.,branch:$branch

관련 정보