如何从 IP 地址列表中获取第四个八位字节大于 10 的行?
How to get the lines from a list of IP addresses which has the fourth octet more than 10?
我有以下输出:
netman@netman:~/Desktop$ nmap -p 80,443,8080 --open 172.20.74.0/24 | grep report | cut -d"(" -f2 | cut -d")" -f1 | sed '/172.20.74.(0-9)/d'
172.20.74.4
172.20.74.11
172.20.74.40
172.20.74.212
我需要一种方法(sed 或 awk 或任何其他命令)来获取 172.20.74.11 - 172.20.74.255 范围内的 IP 地址
我尝试了 Sed 和其他命令,如 grep,但无济于事。
提前致谢
. . . | awk '-F.' '>10'
产生输出
172.20.74.11
172.20.74.40
172.20.74.212
来自您上面包含的 4 个 IP。我是否正确理解了您的需求?
这种方法依赖于 awks 的能力,可以根据为 FS
(字段分隔符)指定替代值来对编号字段进行操作。我使用命令行选项 '-F.'
来设置 FS
.
因为你要第4个字段,我们只需要比较>10
。仅打印与该比较匹配的行。
长手版是
. . . | awk 'BEGIN{FS="."}{if ( > 10) print [=12=]}'
其中 [=17=]
指整行输入,
指行中的第 4 个字段,当使用 '.' 时。作为字段分隔符,默认操作是处理(测试)所有输入行(在本例中,来自您的管道)。
IHTH
我有以下输出:
netman@netman:~/Desktop$ nmap -p 80,443,8080 --open 172.20.74.0/24 | grep report | cut -d"(" -f2 | cut -d")" -f1 | sed '/172.20.74.(0-9)/d'
172.20.74.4
172.20.74.11
172.20.74.40
172.20.74.212
我需要一种方法(sed 或 awk 或任何其他命令)来获取 172.20.74.11 - 172.20.74.255 范围内的 IP 地址
我尝试了 Sed 和其他命令,如 grep,但无济于事。
提前致谢
. . . | awk '-F.' '>10'
产生输出
172.20.74.11
172.20.74.40
172.20.74.212
来自您上面包含的 4 个 IP。我是否正确理解了您的需求?
这种方法依赖于 awks 的能力,可以根据为 FS
(字段分隔符)指定替代值来对编号字段进行操作。我使用命令行选项 '-F.'
来设置 FS
.
因为你要第4个字段,我们只需要比较>10
。仅打印与该比较匹配的行。
长手版是
. . . | awk 'BEGIN{FS="."}{if ( > 10) print [=12=]}'
其中 [=17=]
指整行输入, 指行中的第 4 个字段,当使用 '.' 时。作为字段分隔符,默认操作是处理(测试)所有输入行(在本例中,来自您的管道)。
IHTH