패턴이 전체 단어와 일치하는 경우에만 패턴 바꾸기 [중복]

패턴이 전체 단어와 일치하는 경우에만 패턴 바꾸기 [중복]

다음과 같은 것으로 교체하려고 한다고 가정해 보겠습니다.

asdasdasdHit Hitasdasd Hit Hit
Hitasda Hit Hit asdaHit Hit Hit
Hit Hitasda Hit
...
...

모든 "깨끗한" 클릭을 "확인"으로 바꾸는 방법이 있습니까? /g를 시도했지만 모든 것이 정상이었고 s/\ Hit\ /OK/g줄 바꿈 클릭이 사라졌습니다.

답변1

예.

$ sed 's/\<Hit\>/OK/g' file
asdasdasdHit Hitasdasd OK OK
Hitasda OK OK asdaHit OK OK
OK Hitasda OK
...
...

\<단어 시작 부분에서 길이가 0인 단어 경계를 일치시키고 단어 \>끝에서도 동일한 작업을 수행합니다.

이것길이가 0이다\<\>문자 자체와 일치하지 않지만 단어 경계에서는 인접한 패턴이 일치하도록 강제한다는 의미입니다.

단어 경계영숫자 문자가 영숫자가 아닌 문자에 인접한 문자열의 지점입니다. 예를 들어 문자열의 (공백)과 지점(다른 공백) 사이의 지점 이나 개행 문자 바로 사이와 사이의 지점이 이어집니다. H샘플 데이터의 세 줄 모두에 있습니다.t␣Hit␣t

GNU의 경우 sedand 대신 사용할 수 있습니다 \b(and도 이해하지만).\<\>\<\>

$ sed 's/\bHit\b/OK/g' file

...하지만 BSD는 sed이해하지 못합니다 \b.

관련 정보