У меня есть этот script -
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)
Я не мог понять, как это сделать, обратите внимание, что во второй строке есть пробелы.
Любая идея?