假定文本文件file
包含多行數字範圍。每個範圍的下限和上限用短劃線分開,並且對各個範圍進行排序(即,範圍101-297在1299-1314之前)。評估bash中數字範圍的重疊
$cat file
101-297
1299-1314
1301-5266
6898-14503
我怎樣才能在慶典確認,如果一個或多個這些數量範圍的重疊?
在我看來,所有需要的似乎是迭代地執行跨相鄰行的整數比較。各個整數比較可能看起來像這樣的事情:
if [ "$upperbound_range1" -gt "$lowerbound_range2" ]; then
echo "Overlap!"
exit 1
fi
我懷疑,但是,這種比較也可以通過AWK來完成。
注意:理想情況下,代碼不僅可以確定是否有任何範圍與其直接後繼範圍重疊,而且哪個範圍是重疊範圍。
優秀的答案。是的,你將如何修改打印語句來打印前一行而不是當前行? –
@MichaelGruenstaeudl:請現在檢查我編輯的答案,讓我知道如果這可以幫助你。 – RavinderSingh13
很好用!謝謝。 –