使用IFS将字符串剪切成数组时遇到问题。 BASH

时间:2015-01-09 18:56:27

标签: arrays bash ifs

我已经尝试了一切我能想到的将其切割成我的阵列的单独元素但我正在努力..

这是我想要做的......

(此命令只删除返回的第一个元素上的IP地址)

$ IFS=$"\n"
$ aaa=( $(netstat -nr | grep -v '^0.0.0.0' | grep -v 'eth' | grep "UGH" | sed 's/ .*//') )

$ echo "${#aaa[@]}"
1
$ echo "${aaa[0]}"
4.4.4.4
5.5.5.5

当我查找数组以将4.4.4.4分隔为${aaa[0]}而将5.5.5.5分隔为${aaa[1]}

时,会显示多个值

我试过了:

IFS="\n"

IFS=$"\n"

IFS=" "

非常困惑,因为我最近一直在使用数组,并且从未遇到过这个特定的问题。

有人能告诉我我做错了吗?

1 个答案:

答案 0 :(得分:0)

关于如何使用IFS + read -a将字符串拆分为另一个stackoverflow页面上的数组,有一个很好的例子

How does splitting string to array by 'read' with IFS word separator in bash generated extra space element?

netstat已弃用,已替换为ss,因此我不确定如何重现您的确切问题