<分区>
我有这个脚本:
nmapout=`sudo nmap -sP 10.0.0.0/24`
names=`echo "$nmapout" | grep "MAC" | grep -o '(.\+)'`
echo "$names"
现在 $names
变量包含以换行符分隔的字符串:
>_
(Netgear)
(Hon Hai Precision Ind. Co.)
(Apple)
我尝试用子串的方式进行数组转换:
names=(${names//\\n/ })
echo "${names[@]}"
但问题是如果我运行这个循环,我无法通过索引(即 ${names[$i]
等)访问它们
for (( i=0; i<${#names[@]}; i++ ))
do
echo "$i: ${names[$i]"
# do some processing with ${names[$i]}
done
我得到这个输出:
>_
0: (Netgear)
1: (Hon
2: Hai
但我想要的是:
>_
0: (Netgear)
1: (Hon Hai Precision Ind. Co.)
2: (Apple)
我想不出一个好的方法来做到这一点,请注意第二个字符串中有空格。