从第一个公共八位字节中提取所有子网

从第一个公共八位字节中提取所有子网

我的文件中有一个子网列表。我只需要提取那些具有如上所述的公共八位字节的子网。

我尝试使用 grep "grep -oP '1.[^"]+' 但仍然得到了一些不同的结果。

例如我有一个日志为。

1.1.1.0/24
2.74.2.0/24
11.2.1.0/24
1.9.55.0/24

我只想提取具有公共第一个八位字节为 1 的子网,因此结果应该是

1.1.1.0/24
1.9.55.0/24

答案1

这将做你想做的事:

grep '^1\.' filename

^符号表示行的开头,\.表示字面上的点。

答案2

打印第一个点分隔字段为 1 的每一行:

awk -F. '$1=="1" {print}' datafile

由于脚本的每一行awk都是condition {action},并且默认情况下可以省略任一部分1 {print},因此该行可以写得更流畅,如下所示:

awk -F. '$1=="1"' datafile

相关内容