0

假设我有一个数组,其中数组中的每个元素都采用以下格式:

someText (x1,y1,z1) (x2,y2,z2) (x3,y2,z3) KEY

构建新数组的方法是什么,其中新数组中的元素只是前一个数组的第一列和最后一列?

4

3 回答 3

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")
于 2013-09-03T11:58:36.297 回答
0
echo "someText (x1,y1,z1) (x2,y2,z2) (x3,y2,z3) KEY"|awk '{print $1,$NF}'
于 2013-09-03T12:19:44.057 回答
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
于 2013-09-03T11:59:23.237 回答