一个文本文件中的两个数组

时间:2017-06-29 18:50:31

标签: arrays linux string bash

我被这一个完全困扰了。我有一段代码吐出来......

192.168.0.1=12345
192.168.0.2=35345
192.168.0.3=72345
192.168.0.4=43345

将其写入文本文件,然后将其加载回程序中。

有没有办法将其拆分为2D数组?第一个D包含IP地址,第二个包含其他数字。我需要找到代码后面与数字相关联的IP。

到目前为止我只有这个...

IFS=$'\r\n' GLOBIGNORE='*' command eval  'uparray=($(cat ./uptime.txt))'

我应该提到这是在Raspbian上运行

1 个答案:

答案 0 :(得分:1)

如果您的bash版本支持关联数组

declare -A ip_nums
while IFS== read ip num; do
    ip_nums[$num]=$ip
done <./uptime.txt

然后从num

中检索ip
echo "${ip_nums[$num]}"

编辑:记住循环中的最大数字

biggest=0
while ...
    ...
    if ((num>biggest)); then
        biggest=$num
    fi
done ...