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

如何处理test.txt中特定前缀S{n}的数字,添加对应后缀并替换分隔符?

几种快速实现文本格式转换的方案

我来给你几个实用的解决方案,不管你偏好脚本还是命令行工具,都能轻松完成这个格式转换需求:

方法1:Python脚本(跨平台通用)

这个方案逻辑清晰,容易理解和修改,适合所有操作系统。你可以创建一个convert.py脚本,内容如下:

# 读取原文件内容
with open('test.txt', 'r', encoding='utf-8') as f:
    content = f.read().strip()

# 按空格分割每个S{n}项
items = content.split()
result = []

for item in items:
    # 分割S标识和数字部分,比如S1:158,525 → ['S1', '158,525']
    s_part, nums_part = item.split(':')
    # 提取n,比如S1 → '1',S10 → '10'
    n = s_part[1:]
    # 分割数字列表,给每个数字添加c{n},再用分号连接
    processed_nums = ';'.join([f"{num}c{n}" for num in nums_part.split(',')])
    # 拼接回S{n}:xxx的格式
    result.append(f"{s_part}:{processed_nums}")

# 把结果拼接成一行,写入新文件或者打印输出
final_content = ' '.join(result)
with open('converted_test.txt', 'w', encoding='utf-8') as f:
    f.write(final_content)

print(final_content)

运行后会生成一个converted_test.txt文件,里面就是你要的格式。

方法2:sed命令(Linux/macOS终端)

如果你用的是类Unix系统,一行sed命令就能完成转换,不需要写脚本:

sed -E 's/(S([0-9]+)):([0-9]+)/\1:\3c\2/g; s/,/;/g' test.txt > converted_test.txt

命令解释:

  • 第一个替换规则s/(S([0-9]+)):([0-9]+)/\1:\3c\2/g:匹配每个S{n}:数字的部分,把数字替换成数字c{n};
  • 第二个替换规则s/,/;/g:把所有逗号替换成分号;
  • 最后把结果输出到converted_test.txt文件。

方法3:PowerShell命令(Windows)

Windows用户可以用PowerShell来处理,打开PowerShell后执行以下命令:

$content = Get-Content -Path 'test.txt' -Raw
$items = $content -split ' '
$result = @()
foreach ($item in $items) {
    $sPart, $numsPart = $item -split ':'
    $n = $sPart.Substring(1)
    $processedNums = ($numsPart -split ',' | ForEach-Object { "$_c$n" }) -join ';'
    $result += "$sPart:$processedNums"
}
$result -join ' ' | Out-File -Path 'converted_test.txt' -Encoding utf8

执行后同样会生成转换后的文件。

你可以根据自己的操作系统和使用习惯选择对应的方法,测试下来都能完美实现你要的格式转换~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:18:30