在我的脚本中,我需要扩展一个间隔,例如:
input: 1,5-7
得到如下内容:
output: 1,5,6,7
我在这里找到了其他解决方案,但它们涉及 python,我无法在我的脚本中使用它。
最佳答案
仅使用 Bash 4 内置函数的解决方案
您可以使用Bash range expansions 。例如,假设您已经解析了输入,您可以执行一系列连续操作,将范围转换为逗号分隔的系列。例如:
value1=1
value2='5-7'
value2=${value2/-/..}
value2=`eval echo {$value2}`
echo "input: $value1,${value2// /,}"
所有关于 eval 危险的常见警告都适用,并且您最好使用 Perl、Ruby、Python 或 AWK 来解决这个问题。如果您不能或不愿意,那么您至少应该考虑在转换中包含一些管道工具,例如 tr 或 sed 以避免评估的需要。
关于bash - 解析和扩展区间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15313848/