파일의 단어 바꾸기 [중복]

파일의 단어 바꾸기 [중복]

(단어 목록이 아닌) 문장으로 구성된 파일에서 단어를 바꿔야 한다고 가정해 보겠습니다 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해야 합니다 .gsed -i 's/\<child\>/son/g' /path/to/your/file

관련 정보