Bash에 얼마나 많은 IP가 있는지 계산하는 방법을 아는 사람이 있습니까?
예: 명령:
root@ubuntu:~$ dig www.google.com A +short | grep -oE "\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b"
예를 들어 나는 얻는다
114.114.114.114
114.114.115.115
8.8.8.8
etc...
다음을 얻기 위해 특정 명령을 실행하고 싶습니다.
N IPs found in DNS
(N은 반환된 IP 수)
또한 이러한 IP를 여러 변수로 나누고 싶습니다.
$a="114.114.114.114"
$b="115.115.115.115"
$c="8.8.8.8"
$N="x.x.x.x"
이 작업을 수행하는 방법을 아는 사람이 있나요?
답변1
배열을 사용하여 결과를 얻고 배열 요소 수를 사용하여 N IPs found in DNS
행을 표시할 수 있습니다. 배열을 반복하거나 배열의 특정 요소를 사용할 수도 있습니다.
#!/bin/bash
myarray=( $(dig www.google.com A +short | grep -oE "\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b" ) )
echo "${#myarray[@]} IPs found in DNS"
for IP in ${myarray[@]}
do
echo IP: $IP
done
echo "The third entry found in DNS is: ${myarray[2]}"
답변2
IP를 계산하려면 |wc -l
명령 끝에 추가하면 됩니다.