Bash分裂字符串

前端之家收集整理的这篇文章主要介绍了Bash分裂字符串前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在数组中有以下数据:
MY_ARR[0]="./path/path2/name.exe 'word1 word2' 'name1,name2'" 
MY_ARR[1]="./path/path2/name.exe 'word1 word2' 'name3,name4,name5'"
MY_ARR[2]=".name.exe 'word1 word2'"
MY_ARR[3]="name.exe"
MY_ARR[4]="./path/path2/name.exe 'word1 word2' 'name1'"
MY_ARR[5]="./path/path2/name.exe 'word1 word2' 'name.exe,name4.exe,name5.exe'"

我想把它分成两个变量:$file和$parameter.

例:

file="./path/path2/name.exe"
parameter="'word1 word2' 'name1,name2'"

我可以用awk做到这一点:

parameter=$(echo "${MY_ARR[1]}" | awk -F\' '{print $2 $4}')
file=$(echo "${MY_ARR[1]}" | awk -F\' '{print $1}')

这需要删除尾随空格并且看起来很复杂.

有没有更好的方法呢?

看起来字段之间的分隔符是一个空格.因此,您可以使用剪切来分割它们:
file=$(echo "${MY_ARR[1]}" | cut -d' ' -f1)
parameter=$(echo "${MY_ARR[1]}" | cut -d' ' -f2-)

> -f1表示第一个参数.> -f2-表示第二个参数的所有内容.

猜你在找的Bash相关文章