텍스트 파일이 있습니다.
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 $.