我需要一个解决方案,最好是 sed,它可以匹配包含任何数字组合的 IP 八位字节并删除该行。例如:
我的文件:
192.168.100.12
192.168.200.12
10.10.20.10
10.10.30.20
我需要删除包含 10.10.20.x 子网上找到的任何 IP 的行并将其删除。因此,如果文件包含 10.10.20.10 、 20.11 、 20.12 等...它们都会被删除。我还需要一个内联替代品。
我尝试过的:
sed -i '/10\.10\.20\.\([0-9]\{1,3\}\)/d' file
和这个:
sed -i '/10.\.10\.20\.*\([0-9]\{1,3\}\)*/d' file
但两者都不起作用。该命令完成时没有错误,但这些行仍在文件中。我也愿意接受其他解决方案,例如 awk。
答案1
使用 GNU sed:
sed -i '/10\.10\.20\.[[:digit:]]\{,3\}/d' file
使用 BSD sed,您需要sed -i ''
.