2

我的文件名如下:

first_config.txt.1.1
second_config.2.1.1.1

我想使用 perl 将文件名和版本与完整的文件名分开。

first_config.txt & 1.1 
second_config & 2.1.1.1

我尝试了下面的代码,但它没有按预期工作。

to extract the version from the complete file name string:
perl -e '$n = "first_config.txt.1.1"; $n =~s/[^\.\d.]//g; print "$n\n";'

to extract the name from the complete file name string:
perl -e '$n = "first_config.txt.1.1"; $n =~s/[\.^\d.]//g; print "$n\n";'
4

2 回答 2

3

在 a 上拆分为 2,.后跟一个数字:

my ($name, $version) = split /\.(?=\d)/, $filename, 2;
于 2013-08-29T08:26:11.997 回答
1

您还可以使用正则表达式.从字符串末尾提取数字:

my ($name, $version) = $filename =~ /(.*?)\.([.\d]*)$/;
于 2013-08-29T08:52:34.920 回答