在bash中获取某些列

时间:2013-09-03 11:54:12

标签: bash

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

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

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

3 个答案:

答案 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}'