bash - 解析和扩展区间

标签 bash intervals expansion

在我的脚本中,我需要扩展一个间隔,例如:

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 来解决这个问题。如果您不能或不愿意,那么您至少应该考虑在转换中包含一些管道工具,例如 trsed 以避免评估的需要。

关于bash - 解析和扩展区间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15313848/

相关文章:

vue.js - 为什么所有的扩展卡都是点击打开的?

linux - 识别在 Mac OSX 和 Linux 中导出 PATH 更新的位置,而不管终端

Bash shell 脚本 : how do I exit and restart the script?

r - findInterval() 的向量化

macros - Rust 宏可以像 C 预处理器宏一样扩展为十六进制数吗?

html - Bootstrap 3 'Fixed Navbar' 仅扩展了屏幕高度的大约 55-60%

bash - EC2 用户数据,启动时未执行的特定命令,手动工作正常

linux - Git 还原有其他依赖于它的提交的提交

php - 你如何在 MySQL/PHP 中存储和搜索数字间隔?

Java:如何索引具有关联间隔的元素?