2017-03-13 69 views
0

我有一個數字範圍,例如150 - 249,並且我想將此範圍內的值映射到不同的數字範圍內,例如300 - 780。有什麼方法我可以在bash中做到這一點?在bash中將一個號碼範圍映射到另一個號碼

+0

你想對他們應用一個功能嗎?我注意到300是2 * 150,但780約爲249的3.1倍,所以加倍對你不起作用。 – numbermaniac

+0

@numbermaniac這些數字就是例子。實際的輸入範圍會有所不同 – hellocatfood

回答

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,你需要定義FUNC將輸入和輸出鏈接起來。

相關問題