如何使用 Linux seq 命令打印 IP 地址范围

如何使用 Linux seq 命令打印 IP 地址范围

如何使用“seq”命令在 Linux 命令行上打印一系列 IP 地址?例如:我需要 seq 打印从 10.0.0.1 到 10.0.0.23 的 ip 范围。似乎八位位组之间的句点导致数字表现得像浮点数。我收到“无效浮点参数错误”。我尝试使用 -f 选项。可能是我没有正确使用它。但它仍然给了我一个错误。我正在尝试类似的事情

seq 10.0.0.2 10.0.0.23

除了切换到 Excel 之外,还有其他方法可以在 Linux 中打印某个范围内的 IP 地址吗?

答案1

使用格式:

$ seq -f "10.20.30.%g" 40 50
10.20.30.40
10.20.30.41
10.20.30.42
10.20.30.43
10.20.30.44
10.20.30.45
10.20.30.46
10.20.30.47
10.20.30.48
10.20.30.49
10.20.30.50

不幸的是,这并不明显,因为 GNU 不喜欢编写手册页。

答案2

有的是prips公用事业它从范围或 CIDR 生成 IP 列表。对于大范围的工作很有用:

$ prips 10.0.0.20 10.0.0.23
10.0.0.20
10.0.0.21
10.0.0.22
10.0.0.23

$ prips 10.0.0.0/23
10.0.0.0
10.0.0.1
10.0.0.2
<...>
10.0.1.254
10.0.1.255

答案3

您可以使用 sed 命令和 seq 来打印 IP 地址的范围。

seq 2 23 | sed 's/^/10.0.0./'

或者使用 echo 和 tr

echo 10.0.0.{2..23} | tr ' ' '\n'

答案4

for i in $(seq 2 23); do echo "10.0.0.$i"; done

相关内容