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은 공백을 무시하고 잘못된 결과를 반환합니다. 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"

관련 정보