假设我有一个数组,其中数组中的每个元素都采用以下格式:
someText (x1,y1,z1) (x2,y2,z2) (x3,y2,z3) KEY
构建新数组的方法是什么,其中新数组中的元素只是前一个数组的第一列和最后一列?
假设我有一个数组,其中数组中的每个元素都采用以下格式:
someText (x1,y1,z1) (x2,y2,z2) (x3,y2,z3) KEY
构建新数组的方法是什么,其中新数组中的元素只是前一个数组的第一列和最后一列?
你可以做这样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")
echo "someText (x1,y1,z1) (x2,y2,z2) (x3,y2,z3) KEY"|awk '{print $1,$NF}'
这是获取数组中字符串的第一个和最后一个元素的方法:
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