用linux的命令从多个文件中统计ip的个数

时间:2025-04-06 08:23:07

前提:

若干个文件如hostsAA_平台.cfg 、 hostsBB_服务.cfg  、 hostsCC_平台.cfg 、 hostsDD_服务.cfg、 hostsXX_平台.cfg,每个文件定义了很多主机数,每个主机配置定义格式如下:

define host{

       use             linux-server

       host_name       AA-平台-济南

       alias           16.198.64.4

          }


目的:统计所有的文件的不重复的ip地址

解决的命令: ls host* | xargs cat | grep -E  "[0-9] + .[0-9] +.[0-9] +.[0-9]+" | awk '{print $2}' | uniq | wc -l

注释:

命令适用于管道命令不能使用的情况,本例中xargs命令将前面的输出作为cat的命令行参数。

-E "[0-9] + .[0-9] +.[0-9] +.[0-9]+",查找含有ip格式的字符串

'{print $2}',只打印输出一行记录的第二个被分割的域。即  address         16.198.64.4 这行数据的 16.198.64.4