目标
我有一个长字符串s
,它代表一系列用逗号和破折号分隔的数字(见下文)。当多个数字相互跟随时,两个极端数字被写入并用破折号分隔。例如,系列4,5,6,7
写为4-7
。我的目标是扩展此字符串以使所有数字都用逗号分隔(4-7
应该成为4,5,6,7
)。
我做了什么
这是字符串的示例
s="4092-4093,4095-4097,4104,4107,4111,4125-4127"
我想首先4-7
通过{4..7}
(使用 sed 反向引用)替换类型的模式
a="$(echo $s | sed 's/\([0-9]*\)-\([0-9]*\)/{\1..\2}/g')"
然后评估字符串以扩展大括号
b="$(eval echo $a)"
但是,当我运行最后一个命令时,扩展是“以阶乘方式”完成的(导致 RAM 使用量激增)。
问题
4-7
如何在4,5,6,7
我的字符串中替换那种模式?
版本
我在Mac OS X 10.11.3
使用Terminal 2.6.1 (361.1)