sed/grep을 사용하여 파일의 문자열을 바꾸고 싶지만 문자열이 다른 문자열과 혼합되어 있습니다.
예:
sed -i 's/php/vinu/g' test.yml # to replace string php with vinu
테스트.yml
php
phpehealth
dophp
testingphpin
위의 yml 파일에는 여러 개의 "php" 문자열이 포함되어 있지만 "php" 문자열을 "vinu"로 바꾸고 나머지는 건드리면 안 됩니다.
예상 출력:
vinu
phpehealth
dophp
testingphpin
답변1
귀하의 sed 버전이 이를 지원하는 경우 정규 표현식에서 단어 경계를 사용하십시오.
sed -i 's/\<php\>/vinu/g'
답변2
단어 경계를 지정하는 또 다른 방법:
sed -i 's/\bphp\b/vinu/g' file