如何将字符串中的所有IP地址转换为bash数组[重复]

问题描述 投票:-1回答:1

这个问题在这里已有答案:

我有以下字符串:

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地址,而不是如何将它们读入数组。

linux bash parsing ip-address
1个回答
0
投票

我最终能够通过使用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[@]}"打印出来

© www.soinside.com 2019 - 2024. All rights reserved.