相关疑难解决方法(0)

如何使用'cut'找到最后一个字段

使用sed使用awk,当字段数量未知或每行更改时,如何获取最后一个字段? cut

linux bash cut

266
推荐指数
7
解决办法
22万
查看次数

bash:将'\n'分隔的字符串转换为数组

我有这个脚本 -

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)

我无法找到一个好方法,请注意第二个字符串中有空格.

任何的想法 ?

arrays bash newline

17
推荐指数
5
解决办法
2万
查看次数

标签 统计

bash ×2

arrays ×1

cut ×1

linux ×1

newline ×1