我有一个包含 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'