Grep은 공백을 무시합니다.

Grep은 공백을 무시합니다.

특정 IP에 대해 많은 IP 주소 목록을 검색하려고 하는데 공백으로 인해 오탐지가 발생합니다. 다음 예를 고려해 보세요.

$ a="192.168.1.1    192.168.1.2"
$ ip="1.1.192.168"

$ echo $a | grep "$ip"
192.168.1.1 192.168.1.2

Grep은 공백을 무시하고 잘못된 결과를 반환합니다. "1.1 192.168"이 "1.1.192.168"과 같지 않다는 것을 grep이 인식하도록 하려면 어떻게 해야 합니까?

답변1

변수를 인용하는 데 익숙해지세요. 이후에 일치하는 항목을 찾을 수 없습니다.

echo "$a" | grep "$ip"

이것은 일반적인 해결책이 아닙니다. 다음번에는 IP 사이에 공백이 하나만 있을 수 있습니다. 사용

ip="1[.]1[.]192[.]168"

여전히 문제가 있습니다 101.1.192.168. .
따라서 -Fw 옵션을 사용해 보십시오.

echo "$a" | grep -Fw "$ip"

관련 정보