정규 표현식: 문자열을 포함하지 않습니다.

정규 표현식: 문자열을 포함하지 않습니다.

두 개의 문자열이 있습니다.

문자열 1: platform1-05_02_00.001:platform
문자열 2:platform1-domino-05_02_00.001:platform

첫 번째 버전에서는 버전( 05_02_00.001)이 변경됩니다. 먼저 정규식을 시도했습니다.

sed -i 's/platform1-.*:platform/platform1-06:hybrisb/g' file

그런데 2개의 문자열이 바뀌었습니다. 그렇기 때문에 sed에게 "도미노"가 아닌 문자열(도미노를 포함하지 않음)을 찾도록 지시하는 정규식을 찾고 있습니다.

답변1

한 가지 방법은 다음과 같습니다.

sed '/domino/! s/platform1-.*:platform/platform1-06:hybrisb/g' file

/domino/!일치하지 않는 행을 선택합니다 domino.

답변2

"platform-domino"가 포함된 줄을 건너뛰려면 다음 명령을 사용하는 것이 좋습니다 n.

sed '/platform1-domino/ n; s/platform1-.*:platform/platform1-06:hybrisb/g' file

또는 검색하고 바꾸되 일치 가능성이 있는 문자를 제거합니다.

sed 's/platform1-[^d][^o][^m][^i][^n][^o].*:platform/platform1-06:hybrisb/g' file

관련 정보