如何用脚本将范围格式文本展开为逐行连续值?
用脚本批量展开带范围的编号列表
当然可以通过脚本轻松实现这个需求,下面提供两种常用的脚本方案:
Python 脚本方案
适合跨平台使用,逻辑清晰易修改:
# 可以替换为从文件读取输入: # with open('input.txt', 'r') as f: # input_text = f.read() input_text = "TSNN-00500--00503 TSNN-00510--00515" range_items = input_text.strip().split() for item in range_items: prefix, rest = item.split('-', 1) start_str, end_str = rest.split('--') start = int(start_str) end = int(end_str) num_length = len(start_str) for num in range(start, end + 1): print(f"{prefix}-{num:0{num_length}d}")
使用方式
- 将上述代码保存为
expand_numbers.py - 如果需要从文件读取输入,注释掉
input_text的直接赋值,取消文件读取部分的注释 - 运行并将结果输出到新文件:
python expand_numbers.py > output.txt
Bash 脚本方案
适合Linux/macOS环境下的命令行快速处理:
#!/bin/bash # 替换为从文件读取:input=$(cat input.txt) input="TSNN-00500--00503 TSNN-00510--00515" for item in $input; do prefix=$(echo "$item" | cut -d'-' -f1) start=$(echo "$item" | cut -d'-' -f2) end=$(echo "$item" | cut -d'-' -f4) len=${#start} seq -f "${prefix}-%0${len}g" $start $end done
使用方式
- 将代码保存为
expand_ranges.sh - 赋予执行权限:
chmod +x expand_ranges.sh - 运行并输出到文件:
./expand_ranges.sh > output.txt
内容的提问来源于stack exchange,提问作者Mikael Johnasson
相关产品推荐
相关产品推荐

