linux + 使用不规则表达式(find 命令)或 perl 的 find 机制

linux + 使用不规则表达式(find 命令)或 perl 的 find 机制

嗨,亲爱的朋友们,早上好

以下问题对于我的系统来说可能很复杂且至关重要

我有 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:]]' /*

相关内容