2013-11-27 2 views
1

파일 크기가 매우 크며 열 중 하나가 다양한 IP 주소 목록입니다. 이 파일에서 인쇄해야하는 여러 IP 범위가 있습니다. 이 범위 만 가져 오는 가장 좋은 방법은 무엇입니까? 그것은 하나의 진술로 끝날 수 있습니까? 예 :파일의 여러 IP 범위에 대한 awk 열 또는 grep

10.0.0.0/8 
10.102.175.0/28 
10.102.231.0/24 
10.102.79.0/24 
10.102.93.0/30 
10.103.141.0/30 
10.103.141.0/32 
10.103.154.0/26 
10.104.152.0/27 
10.105.25.0/26 
10.107.64.0/24 
10.111.130.0/26 
10.111.147.0/24 
10.111.148.0/24 
10.111.149.0/24 
10.111.150.0/24 
10.27.28.0/24 
172.16.208.0/29 
172.26.92.0/23 
192.1.53.0/24 
192.168.16.0/30 
192.168.55.0/30 
192.200.9.0/24 
+0

파일 또는 기대 한 결과입니까? IP처럼 보이는 것을 추출하기를 원한다면 쉽습니다. ipv4라고 가정하면, [0-9] {1,3} \. [0-9] {1,3} \. [0-9] {1,3} \. [0-9 ] {1,3} \/[0-9] {1,3}' – beerbajay

+0

파일에 실제 IP가 있습니다. IP는 WAN에서 다른 서브넷을 나타냅니다. 위에서 붙여 넣은 범위 내에있는 IP 목록을 파일에서 가져와야합니다. – user1999357

+0

grepcidr이 나를 위해 데비안에서 작동하는 것 같습니다. – user1999357

답변

1

grepcidr은 내가 필요한 것을 수행하는 것 같습니다.

0

GNU ERE 정규식을 시도 :

(19[01]|1[0-8][0-9]|[1-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])|0\.((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])|0\.((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])|0\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[89])))|192\.((1[0-9]{2}|[1-9]?[0-9])\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])|200\.([0-8]\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])|9\.0)) 

그것은 하나의 문 (한 줄)이 있습니다.

관련 문제