sed를 사용하여 문자열을 바꾸되 하위 문자열일 때는 바꾸지 마세요.

sed를 사용하여 문자열을 바꾸되 하위 문자열일 때는 바꾸지 마세요.

여러 파일에서 문자열 교체를 수행하고 싶습니다.

문자열은 그 형식 때문에 특별하며 use module_plotting 유사한 문자열을 만날 때 문자열을 바꾸는 것을 피해야 합니다 use module_plotting_debug.

귀하의 답변에 미리 감사드립니다.

답변1

단어 경계 표현을 사용하세요.

sed 's/\<use module_plotting\>/use module_plotting_debug/'

너비가 0인 패턴 \<이며 \>"단어" 경계, 즉 단어가 아닌 문자와 가 있는 단어 문자 사이 \<및 단어 문자와 가 있는 비단어 문자 사이 에서 일치합니다 \>.

"단어 문자"는 임의의 영숫자 문자입니다(현재 로케일을 고려하면 확실하지 않습니다).

내 거re_format(7)수동즉 , 이식성 [[:<:]]이 더 좋아야 하지만 내 시스템의 GNU에서는 [[:>:]]작동하지 않는 것 같습니다 .sed

관련 정보