嗨,亲爱的朋友们,早上好
以下问题对于我的系统来说可能很复杂且至关重要
我有 4 台 Linux 机器,集群
我的目标是在 Linux 系统中的每个文件中找到所有类型的 IP 地址(xxx.xxx.xxx.xxx)
备注:需要扫描Linux系统中的每个文件,并验证文件是否包含IP地址,如果是,则需要打印IP
如下所示
更多/etc/inet/file.example1
182.23.2.4
255.255.0.0
10.10.1.1
19.2.*.*
127.0.0.1
更多/etc/dir/file1.example2
1.1.1.1 TCP
ETC.................
我能否得到一些有创意的建议,即搜索所有 IP 地址并打印它们
莉迪亚
答案1
这将打印包含类似 IP 地址的整行内容。它不会检查其八位字节是否在 0-255 范围内。
grep -Er '\<([0-9]{1,3}\.){3}[0-9]{1,3}\>' /*
要仅打印地址而不打印行的其余部分,请添加该-o
选项。要禁用打印文件名,请添加该-h
选项。
您可以用 替换\<
和\>
分隔符[[:space:]]
。
编辑:
这是一个可能适合包含星号的情况的:
grep -Er '[[:space:]]((\*|[0-9]{1,3})\.){3}(\*|[0-9]{1,3})[[:space:]]' /*