0

質問が一目瞭然ではないことを知っています。私はこの表を持っています:

   ID Start End
   1  1     4
   2  2     5
   3  4     9
   4  8     10

これらを順番に設定したい(下図)。インデックスが開始位置と終了位置に対して 1 ずつ増加し、すべての中で最大のインデックスを取得する配列が必要です。例えば:

1. ####
2.  ####
3.    ######
4.        ### 

so array will be;
    array =(1,2,2,3,2,1,1,2,2,1)

bashでそれが可能かどうかわからなかったので、何も書き始めませんでした。ご意見をお聞かせください..

4

1 に答える 1

2

各間隔のすべての要素をループするだけです。

#! /bin/bash

array=()
while read id start end ; do
    for (( i=start ; i<=end ; i++ )) ; do
        let array[i]++
    done
done << EOF
1  1     4
2  2     5
3  4     9
4  8     10
EOF

echo "${array[@]}"
于 2012-11-30T14:28:56.777 に答える