仅打印以特定列中的数字开头的行

仅打印以特定列中的数字开头的行

我有一个文件,其中第二列作为网络中所有主机的主机名:

Host example.com (x.x.x.x) is up (0.0041s latency).

依此类推,但很多行在第二列中并不以主机名开头,而是以主机名的 IP 开头,例如:

Host a.b.c.d is up (0.022s latency).

那么我如何获得第二列中以 IP 开头的所有行呢?

答案1

awk

awk '$2~/[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/' file

$2这会根据正则表达式检查第二个字段。[0-9]匹配一个数字、+匹配 1 个或多个数字以及\.匹配单个点。

相关内容