![sed를 사용하여 문자열을 바꾸되 하위 문자열일 때는 바꾸지 마세요.](https://linux55.com/image/131952/sed%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%EB%AC%B8%EC%9E%90%EC%97%B4%EC%9D%84%20%EB%B0%94%EA%BE%B8%EB%90%98%20%ED%95%98%EC%9C%84%20%EB%AC%B8%EC%9E%90%EC%97%B4%EC%9D%BC%20%EB%95%8C%EB%8A%94%20%EB%B0%94%EA%BE%B8%EC%A7%80%20%EB%A7%88%EC%84%B8%EC%9A%94..png)
여러 파일에서 문자열 교체를 수행하고 싶습니다.
문자열은 그 형식 때문에 특별하며 use module_plotting
유사한 문자열을 만날 때 문자열을 바꾸는 것을 피해야 합니다 use module_plotting_debug
.
귀하의 답변에 미리 감사드립니다.
답변1
단어 경계 표현을 사용하세요.
sed 's/\<use module_plotting\>/use module_plotting_debug/'
너비가 0인 패턴 \<
이며 \>
"단어" 경계, 즉 단어가 아닌 문자와 가 있는 단어 문자 사이 \<
및 단어 문자와 가 있는 비단어 문자 사이 에서 일치합니다 \>
.
"단어 문자"는 임의의 영숫자 문자입니다(현재 로케일을 고려하면 확실하지 않습니다).
내 거re_format(7)
수동즉 , 이식성 [[:<:]]
이 더 좋아야 하지만 내 시스템의 GNU에서는 [[:>:]]
작동하지 않는 것 같습니다 .sed