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

Perl如何在文件名扩展名之前追加指定文本

Perl文件名追加指定文本实现方案

推荐使用Perl核心模块File::Basename处理路径拆分,无需额外安装,适配多平台路径格式,比手动写正则更稳定。

前置处理

首先需要清理路径末尾多余的斜杠,避免模块将后缀误判为目录名:

# 移除路径末尾的所有斜杠
$my_file =~ s/\/+$//;

核心拆分逻辑

引入模块后拆分路径的目录、文件名主体、后缀三部分:

use File::Basename;
# 第二个参数是匹配文件后缀的正则,会匹配最后一个.之后的所有内容作为后缀
my ($name, $dir, $suffix) = fileparse($my_file, qr/\.[^.]*/);

生成目标文件名格式

  • 格式1:保留完整路径,扩展名前追加_new
my $out_file1 = $dir . $name . '_new' . $suffix;
# 输出结果:/this/is/my/directory/blahblah_new.txt
open my $out, '>', $out_file1 or die $!;
  • 格式2:仅保留文件名,开头追加new_
my $out_file2 = 'new_' . $name . $suffix;
# 输出结果:new_blahblah.txt
open my $out, '>', $out_file2 or die $!;

手动正则实现(不推荐,仅作参考)

如果你不想引入模块,也可以用正则直接处理:

# 生成格式1
(my $out_file1 = $my_file) =~ s/(\.[^.\/]+)$/_new$1/;

# 生成格式2
$my_file =~ m/([^\/]+)$/;
my $out_file2 = 'new_' . $1;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 11:09:02