【问题标题】:How to get all of the IP addresses in a string into a bash array [duplicate]如何将字符串中的所有IP地址放入bash数组[重复]
【发布时间】:2019-07-16 18:17:39
【问题描述】:

我有以下字符串:

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

【问题讨论】:

  • 如果您在 dig 命令之后显示文件并在问题的标签中添加 awk,我相信您会得到更好的答案。

标签: linux bash parsing ip-address


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2016-11-30
    • 2019-05-13
    • 1970-01-01
    • 2019-08-21
    • 2020-11-22
    • 2016-09-19
    • 1970-01-01
    • 2013-12-23
    • 1970-01-01
    相关资源
    最近更新 更多