(단어 목록이 아닌) 문장으로 구성된 파일에서 단어를 바꿔야 한다고 가정해 보겠습니다 child
.son
이는 직선 문자열을 대체하지 않습니다. 예를 들어 다음과 같은 상황이 발생하면 안 됩니다.
children
으로 변경하면 안 된다sonren
그러나 다음과 같은 상황이 발생해야 합니다.
child.
로 변경해야합니다son.
child!
로 변경해야합니다son!
기본적으로 바꿀 텍스트는 독립형 단어여야 하며 단어 구분 기호는 유지되어야 합니다.
가능한 모든 단어 구분 기호를 하드코딩하지 않고 어떻게 이를 수행할 수 있습니까?
답변1
당신은 이것을 달성할 수 있습니다sed주문하다:
sed -i 's/\<child\>/son/' /path/to/your/file
-i[접미사], --in-place[=접미사]
파일을 제자리에서 편집합니다(또는 확장자가 제공된 경우 백업). 기본 작동 모드는 심볼릭 링크와 하드 링크를 끊는 것입니다. 이는 --follow-symlinks 및 --copy를 사용하여 변경할 수 있습니다.
다음 테스트 파일을 사용하여 예제를 생각해 보십시오.
child
child.
child!
children
명령을 실행하면 다음을 얻을 수 있습니다.
son
son.
son!
children
편집하다:
같은 줄에 여러 단어가 나타나는 것을 관리하려면 다음 명령을 추가
child
해야 합니다 .g
sed -i 's/\<child\>/son/g' /path/to/your/file