我的文件中有一个子网列表。我只需要提取那些具有如上所述的公共八位字节的子网。
我尝试使用 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