我在数组中有以下数据:
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-表示第二个参数的所有内容.