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

如何编写Perl脚本提取路径数值并截断后续路径?

需求说明

给定输入路径:

/prj/mct/2.5/src/mode/session.v
/prj/act/data/1.6/src/log.v

需要定位路径中的版本数值段(如2.5、1.6),移除该数值段之后的所有路径内容,最终输出格式为:

/prj/mct/2.5/.
/prj/act/data/1.6/.
Perl脚本实现

以下是实现该需求的Perl脚本:

#!/usr/bin/perl
use strict;
use warnings;

# 逐行读取输入(支持标准输入或文件)
while (my $line = <>) {
    chomp $line;
    # 匹配并替换路径:保留到数字.数字的段,后续内容替换为/.
    $line =~ s/(\/\d+\.\d+)\/.*/$1\/./;
    print "$line\n";
}

脚本说明

  • <>:自动读取标准输入内容,或命令行指定的文件中的每一行
  • chomp $line:移除每行末尾的换行符,避免干扰正则匹配
  • 正则替换逻辑:
    • (\/\d+\.\d+):捕获路径中形如/X.X的版本段(X为数字)
    • \/.*:匹配该版本段之后的所有路径内容
    • $1\/.:将匹配到的部分替换为捕获的版本段加上/.
  • 处理后的每行结果直接打印输出

使用方式

  1. 将脚本保存为trim_path.pl,添加执行权限:
    chmod +x trim_path.pl
    
  2. 直接处理输入文本:
    echo -e "/prj/mct/2.5/src/mode/session.v\n/prj/act/data/1.6/src/log.v" | ./trim_path.pl
    
  3. 处理包含路径的文件(假设文件名为paths.txt):
    ./trim_path.pl paths.txt
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 01:40:42