我有一个数字范围,例如150 - 249,我希望将此范围内的值映射到不同的数字范围,例如300 - 780.我有什么方法可以在bash中执行此操作?< / p>
答案 0 :(得分:0)
如果两个范围(1:1)的数字计数相同:可以很容易地用bash创建一个具有所需目标数的数组:
$ numbers=({300..780})
然后,从您想要的索引中减去150:
$ echo "${numbers[219-150]}"
369
变量:
sourceRangeStart=150
targetRangeStart=300
count=100
requestNumber=219
numbers=( $(seq "$targetRangeStart" $((targetRangeStart+count-1)) ) )
echo "${numbers[requestNumber-sourceRangeStart]}"
如果比率不是1:1,则需要定义将输入与输出相关联的函数。