0

知道问题一目了然,我有这张表:

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

我想按顺序设置这些(下图)。我需要一个数组,它的索引将相对于开始和结束位置增加一,并获得最大的索引。例如:

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 回答