파일이 있는데,xyz.txt, 한 줄에 하나의 문자열.
검색은 어떻게 하나요?xyz.txt정확히 일치하려면?
예를 들어 입력 문자열을 얻습니다. defabc
, 다른 응용 프로그램에서. 발견
되면 defabc
반환되어야 합니다.진짜, 다른잘못된. 에서 정규식을 사용할 수 있나요 grep
?
예제 파일: xyz.txt:
abc
def
abc_def
def_abc
abcdef
defabc
uvx
답변1
정확한 일치를 찾으려면 이 -F
옵션을 사용하십시오 grep
(정규 표현식은 꺼짐).
$ grep -F "defabc" xyz.txt
defabc
grep
true 또는 false를 테스트할 수 있도록 적절한 반환 코드를 설정합니다.
$ if grep -qF "defabc" xyz.txt; then echo True; else echo False; fi
True
$ if grep -qF "Defabc" xyz.txt; then echo True; else echo False; fi
False
grep
반환 코드 만 설정하려고 하므로 이 옵션은 조용히(일반 출력 생략) -q
명령을 내리는 데 사용됩니다 .grep
일치 항목을 전체 단어로 제한
일치하고 싶지만 defabc
일치하지 않는 경우 전체 단어로 일치를 제한하는 defabc1
옵션을 추가할 수 있습니다 .-w
if grep -qFw "defabc" xyz.txt; then echo True; else echo False; fi
man grep
"단어"가 어떻게 grep
정의되는지 설명하세요.
-w, --word 정규 표현식
전체 단어를 구성하는 항목이 포함된 행만 선택하십시오. 테스트에서는 일치하는 하위 문자열이 줄의 시작 부분에 있거나 단어를 만들지 않는 문자가 앞에 있어야 한다는 것입니다. 다시 말하지만, 줄 끝에 있어야 하거나 단어를 형성하지 않는 문자가 뒤에 와야 합니다.
단어를 구성하는 문자는 문자, 숫자, 밑줄입니다.
쉘 변수에서 출력 캡처
우리가 사용하는 명령의 출력을 캡처하려면명령 대체그 형태는 $(...)
다음 과 같습니다
$ r=$(if grep -qF "defabc" xyz.txt; then echo True; else echo False; fi)
$ echo $r
True
쉘 변수에서 종료 코드 캡처
grep -qF "defabc" xyz.txt
r=$?
r
일치하는 항목이 있으면 0, 일치하는 항목이 없으면 1, 또 다른 오류가 발생하면 2입니다.
답변2
Unix의 Korn Shell에서 정확한 표현식을 검색하는 명령
grep -w "SEARCH_EXPRESSION" FILE_TO_BE_SEARCHED
위 명령은 정확한 단어나 검색 표현을 검색합니다.