3

私の現在のコード:

for i  in {0..5}; do
       rate[${i}]="`echo $line| awk -v par=$i '{par=par+2}{print $par}'`"
    done 

2番目から始まる各フィールドを抽出し、配列に入れます。これを書き直すよりエレガントな方法があればアドバイスしてください。必ずしも awk である必要はありません。

4

2 に答える 2

1

set入力を分割し、シフトして先頭の2つの要素を削除するために使用します。

set $line
shift 2
rate=($@)

またはshiftchepnerによって提案されたように排除する:

set $line
rate=("${@:3}")
于 2012-09-11T14:34:06.927 に答える
0

変数置換演算子を使用できます。

linetmp=${line#* } # remove up to the first space
linetmp=${linetmp#* } remove up to the second (now first) space
于 2012-09-11T14:37:19.823 に答える