如何从列表中打印IP/掩码?

如何从列表中打印IP/掩码?

我有一个包含 IP 和 IP/掩码的列表,如下所示:

1.1.1.1
2.2.2.2
192.168.0.1
223.0.0.0/15
213.32.7.0/24
...

如何只打印IP/MASK行?我使用命令sed '/^\d{1,3}(\.\d{1,3}){3}\/\d{1,2}$/p' list.txt 但总是打印所有列表。谢谢!

答案1

您可以 grep 查找数字、斜杠和数字以匹配网络掩码,类似的操作可以完成此工作:

grep -o "\d\/\d"

或者

grep -o "[0-9]\/[0-9]"

答案2

只需通过斜杠 grepgrep "/" list.txt

答案3

您需要更改\d正则表达式 =>[0-9]因为 sed 不理解它。并且您需要调用 sed 并选择-E打开扩展正则表达式{来代替\{

sed -nEe '/^[0-9]{1,3}(\.[0-9]{1,3}){3}\/[0-9]{1,2}$/p'

相关内容