2016-12-25 86 views
-1

我有這樣的結構文件:轉換IP範圍列表來CIDR

08.176.250.200-108.176.250.219 
108.176.251.40-108.176.251.163 
108.176.254.212-108.176.254.215 
108.176.254.216-108.176.255.87 
108.177.224.0-108.177.225.255 
108.179.0.32-108.179.0.87 
108.179.0.192-108.179.0.255 
108.179.4.0-108.179.4.255 
108.179.13.0-108.179.13.255 
108.179.18.0-108.179.18.15 
108.179.18.16-108.179.19.255 
108.179.25.0-108.179.25.255 
108.179.32.16-108.179.33.255 
108.179.42.64-108.179.42.255 

我怎樣才能將它們轉換爲CIDR並保存到新的文件?

+0

Stack Overflow是編程和開發問題的網站。這個問題似乎與題目無關,因爲它不涉及編程或開發。請參閱幫助中心的[我可以詢問哪些主題](http://stackoverflow.com/help/on-topic)。也許[超級用戶](http://superuser.com/)或[Unix&Linux堆棧交換](http://unix.stackexchange.com/)會是一個更好的地方。另請參閱[我在哪裏發佈有關Dev Ops的問題?](http://meta.stackexchange.com/q/134306) – jww

回答

5

您可以使用ipcalc從IP範圍計算cidr

~/test$ ipcalc -rn 108.179.42.64-108.179.42.255 
deaggregate 108.179.42.64 - 108.179.42.255 
108.179.42.64/26 
108.179.42.128/25 

下面將計算爲您的文件(ip.txt)的每一行的IP範圍,並將其存儲在cidr.txt

awk '{system("ipcalc -rn "$1 "| tail -n +2")}' ip.txt > cidr.txt 

xargs

<ip.txt xargs -I '{}' bash -c 'ipcalc -rn {} | tail -n +2' > cidr.txt