grep을 사용하여 정확한 문자열 일치

grep을 사용하여 정확한 문자열 일치

텍스트 파일이 있습니다.

deiauk 1611516 afsdf 765
minkra 18415151 asdsf 4152
linkra sfsfdsfs sdfss 4555
deiauk1 sdfsfdsfs 1561 51
deiauk2 115151 5454 4
deiauk 1611516 afsdf ddfgfgd
luktol1 4545 4 9
luktol 1

정확히 일치하는 항목을 원합니다 deiauk. 내가 이것을 할 때 :

grep "deiauk" file.txt

나는 다음과 같은 결과를 얻습니다.

deiauk 1611516 afsdf 765
deiauk1 sdfsfdsfs 1561 51
deiauk2 115151 5454 4

하지만 나에게는 이것만 필요하다:

deiauk 1611516 afsdf 765
deiauk 1611516 afsdf ddfgfgd

옵션 이 있다는 것을 알고 있지만 -w내 문자열이 전체 줄을 처리해야 합니다.

답변1

다음 중 하나를 시도해 보십시오.

grep -w "deiauk" textfile

grep "\<deiauk\>" textfile

답변2

GNU를 사용하여 이것을 시도 grep하고 다음을 사용하여 단어 경계를 표시하십시오 \b.

grep "\bdeiauk\b" file

산출:

덕1611516 afsdf 765

바라보다:http://www.regular-expressions.info/wordboundaries.html

답변3

grep(PCRE)를 지원하는 경우 -P다음을 수행할 수 있습니다.

$ grep -P '(^|\s)\Kdeiauk(?=\s|$)' file.txt 
deiauk 1611516 afsdf 765
deiauk 1611516 afsdf ddfgfgd

답변4

나는 -x그것이 나에게 효과가 있다는 것을 알았습니다.

$ grep -inx -d skip 'favicon.ico' *
test.txt:1:favicon.ico
쿼리 매뉴얼
-x, --line-regexp
              Select  only  those  matches  that  exactly  match the whole line.  For a regular expression pattern, this is like
              parenthesizing the pattern and then surrounding it with ^ and $.

관련 정보