这个问题在这里已有答案:
我有以下字符串:
redis. 600 IN A 172.16.0.3 redis. 600 IN A 172.16.0.4 redis. 600 IN A 172.16.0.5 redis. 600 IN A 172.16.0.6 redis. 600 IN A 172.16.0.7
该字符串是从以下命令获得的:
dig redis A | grep redis | grep -E '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'
运行命令时,每行打印出字符串,但是我将输出保存到变量中,所以它全部都是一行。我想将所有IP地址都放入bash数组中。这对我来说最好的方法是什么?
编辑:这篇文章不是重复的,因为这个重点是如何获取IP地址,而不是如何将它们读入数组。
我最终能够通过使用awk来做到这一点:
IPAddresses=($(dig redis A | grep redis | grep -E '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | awk '{print $5}'))
IPAddresses数组中包含所有IP地址,可以通过执行echo "${IPAddresses[@]}"
打印出来