![정규 표현식: 문자열을 포함하지 않습니다.](https://linux55.com/image/108728/%EC%A0%95%EA%B7%9C%20%ED%91%9C%ED%98%84%EC%8B%9D%3A%20%EB%AC%B8%EC%9E%90%EC%97%B4%EC%9D%84%20%ED%8F%AC%ED%95%A8%ED%95%98%EC%A7%80%20%EC%95%8A%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
두 개의 문자열이 있습니다.
문자열 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