텍스트 파일에서 특정 단어의 위치를 찾고 싶습니다. 예를 들어 단어 변수를 블룸 단어로 정의하면 내가 이 명령을 사용했는지 알고 싶습니다.
grep -n "$word" mydict.txt
하지만 단어 변수를 "ab"로 정의하면. 코드는 "ab"를 포함하는 각 줄을 제공합니다. 예를 들어, Bloom이라는 단어도 제공하지만 ab라는 단어가 있는 행만 필요합니다.
답변1
여기서 행 1이 아닌 행 3을 찾고 싶다는 뜻인가요?
abcdefg
foobar
ab cd ef
그렇다면 grep -w
다음 내용이 유용할 수 있습니다(GNU 매뉴얼 페이지).
-w
,--word-regexp
전체 단어를 구성하는 일치 항목이 포함된 줄만 선택합니다.
"단어"로 간주되는 것은 로케일에 따라 다소 다릅니다. C 로케일에서 "단어 문자"는 문자, 숫자 및 밑줄입니다.
따라서 ab
그 안에 완전한 단어가 있습니다.
printf 'ab' | grep -w ab
printf 'ab cd' | grep -w ab
printf 'ab-cd' | grep -w ab
printf 'ab, cd' | grep -w ab
하지만 여기서는 그렇지 않습니다.
printf 'ab_cd' | grep -w ab
printf 'ab1' | grep -w ab