知道问题一目了然,我有这张表:
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。请建议..
答案 0 :(得分: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[@]}"