전체 단어를 grep하는 방법
다음 명령을 사용하여 하위 디렉토리에서 물건을 grep합니다.
find . | xargs grep -s 's:text'
그러나 이것은 또한 다음과 같은 것을 찾습니다. <s:textfield name="sdfsf"...../>
그것을 피하기 위해 무엇을 할 수 있습니까? <s:text name="sdfsdf"/>
또는 그 문제에 대해 .... 또한 찾습니다 <s:text somethingElse="lkjkj" name="lkkj"
기본적 s:text
와 name
같은 줄에 있어야합니다 ....
-w
단어의 끝임을 지정하는 옵션을 원합니다 .
find . | xargs grep -sw 's:text'
\b
"단어 경계"에서 일치하는 데 사용 하면 전체 단어에 대해서만 검색이 일치합니다.
그래서 당신의 grep은 다음과 같습니다.
grep -r "\bSTRING\b"
색상과 줄 번호를 추가하는 것도 도움이 될 수 있습니다.
grep --color -rn "\bSTRING\b"
에서 http://www.regular-expressions.info/wordboundaries.html :
단어 경계에 해당하는 세 가지 위치가 있습니다.
- 첫 번째 문자가 단어 문자 인 경우 문자열의 첫 번째 문자 앞.
- 마지막 문자가 단어 문자 인 경우 문자열의 마지막 문자 뒤.
- 문자열에서 두 문자 사이. 여기서 하나는 단어 문자이고 다른 하나는 단어 문자가 아닙니다.
xargs
grep 검색을 재귀 적으로 수행 하여 명령을 삭제할 수 있습니다 . 그리고 일반적으로 's'플래그가 필요하지 않습니다. 그 후:
grep -wr 's:text'
rg, https://github.com/BurntSushi/ripgrep 시도해 볼 수 있습니다 .
rg -w 's:text' .
그것을해야한다
나머지 텍스트 부분 만 필터링하려면 이렇게하면됩니다.
xargs grep -s 's:text '
s:text
마지막 t 뒤에 공백이있는 인스턴스 만 찾습니다 . s:text
이름 요소 만있는 인스턴스 를 찾아야하는 경우 결과를 다른 grep
표현식으로 파이프 하거나 정규식을 사용하여 필요한 요소 만 필터링하십시오.
참고 URL : https://stackoverflow.com/questions/2879085/how-to-grep-for-the-whole-word
'programing tip' 카테고리의 다른 글
파이썬에서 eval을 사용하여 변수의 값을 어떻게 할당 할 수 있습니까? (0) | 2020.11.18 |
---|---|
한 번에 두 개 이상의 파일을 압축 해제하려면 어떻게해야합니까? (0) | 2020.11.17 |
로컬 IIS를 통해 작동하도록 Windows 인증을 가져올 수 없습니다. (0) | 2020.11.17 |
jQuery : 부모, 부모 ID를 얻습니까? (0) | 2020.11.17 |
엄격 모드가 적용되었는지 확인할 수있는 방법이 있습니까? (0) | 2020.11.17 |