假设我有一个数组,其中数组中的每个元素都采用以下格式:
someText (x1,y1,z1) (x2,y2,z2) (x3,y2,z3) KEY
构建新数组的方法是什么?新数组中的元素只是前一个数组的第1列和最后一列?
答案 0 :(得分:3)
您可以执行以下操作(OLDARRAY
是前一个数组,NEWARRAY
是新数组。)
NEWARRAY=()
for I in "${!OLDARRAY[@]}"; do
IFS=$' ' read -ra T <<< "${OLDARRAY[I]}"
NEWARRAY[I]="${T[0]} ${T[@]:(-1)}"
done
示例输出:
> set | grep ^NEWARRAY
NEWARRAY=([0]="someText KEY" [1]="someText2 KEY2")
答案 1 :(得分:0)
这是你可以在数组中获取字符串的第一个和最后一个元素的方法:
echo "someText (x1,y1,z1) (x2,y2,z2) (x3,y2,z3) KEY" | rev | cut -d " " -f 1 | rev
echo "someText (x1,y1,z1) (x2,y2,z2) (x3,y2,z3) KEY" | cut -d " " -f 1
答案 2 :(得分:0)
echo "someText (x1,y1,z1) (x2,y2,z2) (x3,y2,z3) KEY"|awk '{print $1,$NF}'