Linux seqコマンドを使用してIPアドレス範囲を印刷する方法

Linux seqコマンドを使用してIPアドレス範囲を印刷する方法

「seq」コマンドを使用してLinuxコマンドラインからIPアドレス範囲を印刷するには?例:10.0.0.1から10.0.0.23までのIP範囲を印刷するにはseqが必要です。オクテット間のピリオドのため、数値が浮動小数点数のように動作するようです。 「無効な浮動小数点引数エラー」が発生します。 -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

関連情報