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

如何用Perl脚本解析文本文件提取bugid、描述、用户名并格式化输出

Perl文本解析脚本调整方案

核心实现思路是用正则表达式精准匹配每行固定格式的内容,直接捕获需要的三个字段,比split拆分更稳定不易出错。

调整后的完整脚本

#!perl -w
use strict;
use warnings;

my $ActivityLog = "test.txt";
my $ActListLog = "test3.txt";

open(FILE, "<$ActivityLog") || die "无法打开输入文件 $ActivityLog: $!";
my @prelist = <FILE>;
close FILE;

my @result;
foreach (@prelist) {
    # 保留原有跳过含Bring over: 内容行的逻辑
    next if /Bring over:/;
    # 正则捕获:分组1为用户名,分组2为bugid+冒号,分组3为描述内容
    if (/^\(\d+\)\s+(\w+)\s+<.*?>\s+(\d+:)\s+([^-]+?)\s+-/) {
        push @result, "$2 $3 $1\n";
    }
}

unlink $ActListLog;
open(LISTNAME, ">$ActListLog") || die "无法打开输出文件 $ActListLog: $!";
print LISTNAME @result;
close LISTNAME;

主要修改说明

  • 新增use strict和use warnings规范代码,避免未定义变量等潜在问题
  • 替换原有split拆分逻辑为正则捕获,适配test.txt每行的固定格式,直接提取所需的用户名、bugid、描述三个字段
  • 输出内容按照要求的[bugid]: [描述] [用户名]格式拼接
  • 给文件打开操作补充了错误提示,方便后续排查文件读写类问题

运行上述脚本后,生成的test3.txt内容完全符合你要求的输出格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 13:39:04