#!/usr/bin/perl foreach $var(glob("*.wav")) { #$var =~ /.*(00.*).wav/; $var =~ /.*(00\d\d).wav/; $Newvar = ‘SpkContext_zj_‘.$1.‘.wav‘; system("mv $var $Newvar"); print "Now is processing $var \t \n"; } print "Over \n";
- 能使用更准确的正则表达式,就不要使用模糊的正则表达式:
- 例如,文件名字如下:SpkContext_0001.wav
- 我们要捕获,其中的0001这4个字符串(或者也可以叫做数字),我现在有了两种写法:
-
$var =~ /.*(00.*).wav/;
-
$var =~ /.*(00\d\d).wav/;
-
- 上面两种写法,当然是第二种的写法更加具体,更加准确。
- 第一种写法,会出现的问是:
- 捕获到的变量$1的值为001,而不是0001
- 第二种写法则不会出现这种问题。
时间: 2024-11-06 17:34:19