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

관련 정보