특정 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"