You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Perl将字符串数字范围转为带指定前缀的格式化序列?

解决数字范围生成格式化序列的问题

你遇到的问题根源在于原命令没有统一处理所有数字的格式化:第一个数字直接输出未加前缀,且所有数字都硬加了前导0,导致两位数出现多余的0前缀。

可以用以下Perl命令实现需求:

range=1-15
echo "$range" | perl -pe 's/(\d+)-(\d+)/join(" ", map { sprintf("Scenario_%02d", $_) } $1..$2)/eg'

命令说明:

  • map { sprintf("Scenario_%02d", $_) } $1..$2:遍历从起始数字到结束数字的每一个值,用sprintf("%02d", $_)将数字格式化为两位固定长度(不足两位补前导0),再拼接Scenario_前缀。
  • join(" ", ...):将所有格式化后的字符串用空格连接起来,替换原有的数字范围字符串。

执行后会得到符合预期的输出:

Scenario_01 Scenario_02 Scenario_03 Scenario_04 Scenario_05 Scenario_06 Scenario_07 Scenario_08 Scenario_09 Scenario_10 Scenario_11 Scenario_12 Scenario_13 Scenario_14 Scenario_15

内容的提问来源于stack exchange,提问作者jayar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 19:30:56