많은 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은 공백을 무시하고 잘못된 결과를 반환합니다. grep이 "1.1 192.168"이 "1.1.192.168"과 같지 않음을 인식하도록 하는 방법은 무엇입니까?
답변1
변수를 인용하는 데 익숙해지세요. 그 이후에는 일치하는 항목을 찾을 수 없습니다.
echo "$a" | grep "$ip"
이는 일반적인 해결 방법이 아니며, 다음 번에는 IP 사이에 공백만 있을 수 있습니다. 사용
ip="1[.]1[.]192[.]168"
여전히 문제가 있습니다. 일치하는 항목을 얻을 수도 있습니다 101.1.192.168
.
-Fw 옵션을 사용해 보세요.
즉echo "$a" | grep -Fw "$ip"