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