awk를 사용하여 지정된 범위 내의 IP 주소를 일치시킵니다.

awk를 사용하여 지정된 범위 내의 IP 주소를 일치시킵니다.

줄 바꿈으로 구분된 IP 주소 목록에서 내부 172개 주소(예: 172.16.x - 172.31.x)만 일치시키려고 합니다. 나는 이것을 시도했지만 작동하지 않습니다.

awk '$1 ~ /^172.[1-3][6-9]|[0-1]/'

내가 뭘 잘못했나요?

답변1

패턴은 ^172.[1-3][6-9]|[0-1]다음과 일치합니다.

172x39
40

후자는 첫 번째 필드에서 0 또는 1과 일치하기 때문입니다.

문자 그대로의 의미 로 변경하려면 .그룹화 \.를 도입해야 하며 더 나은 패턴이 필요합니다.

 ^172\.(1[6-9]|2[0-9]|3[0-1])\.

관련 정보