0

特定のデータを配列に保存しようとしています。次の構造のファイルがあります。

field1 field2 field3 fields4 fields5 200
field6 field7 field8 fields9 fields10 520

行ごとに、各フィールドは 1 つのスペースだけで区切られています。必要なのは、3 番目と 6 番目のフィールドのフィールドのみを含む配列です。つまり、最初の配列は次のようになります: (field3 , field8) ans 2 番目の配列は次のとおりです: (200, 520 )私が試したのはこれでした:

        thirdFields=$(sort $1 | cut -d " " -f3)
        sixthField=$(sort $1 | cut -d " " -f6)

そうですね。(その後、それらの最大値を見つける必要があるため、ソートしています)。

みんなありがとう

4

3 に答える 3

0

バッシュで

$ while read -a fields; do f3+=(${fields[2]}); f6+=(${fields[5]}); done <<END
field1 field2 field3 fields4 fields5 200
field6 field7 field8 fields9 fields10 520
END
$ printf "%s\n" "${f3[@]}"
field3
field8
$ printf "%s\n" "${f6[@]}"
200
520
$ sorted=( $(printf "%s\n" "${f6[@]}" | sort -n) )
$ echo "min: ${sorted[0]}"
$ echo "max: ${sorted[-1]}"
于 2013-05-29T19:02:26.370 に答える