linux - 如何将字符串中的所有 IP 地址放入 bash 数组

标签 linux bash parsing ip-address

<分区>

我有以下字符串:

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[@]}" 打印出来

关于linux - 如何将字符串中的所有 IP 地址放入 bash 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54830716/

相关文章:

bash - 如何使用 bash/sed 脚本删除文本文件的第一行?

linux - 在shell脚本中删除文件中某行的第一个字符

ruby - JSON.parse 更改排序 - Ruby

bash - 运行我的 bash 脚本来设置 ssh 隧道时,它会停止一半

python - 如何使用 python 使 html 解析更具性能

android getElementsByTagName 返回空列表

python - 用于调试的 pygtk 控制台输出

linux - 如何使用斜杠修改配置参数值

linux - 去除 Ghost 换行符的 VIM 脚本

linux - 拆分以分号分隔的单词