perl 正则表达式 求一个正则表达式。

perl 正则表达式 求一个正则表达式。,第1张

是要一个正则表达式匹配3行内容,还是多个表达式分别匹配3个内容:对于第一个,可以使用模式:m/^_\\n$/;对于空行:可以使用模式:m/^\\s\\n$/;如果同时匹配,可以将两个模式合并:m/^[_|\\s]\\n$/;

使⽤Perl合并⽂件使⽤Perl合并⽂件

有时需要将整个⽬录下的⼩⽂件合并到⼀个⽂件中,以便查阅检索

特性

整个⽬录完全遍历,⾃动存⼊单个⽂件

顺序遍历⽂件

待合并的⽬录

合并后的⽂件内容

syscfg/test1

syscfg/test2

uart/uart7/uart7_dma1

uart/uart7/uart7_dma2

wwdg/prescaler

Perl代码

#!/usr/bin/perl

use warnings;

###########################################

#/mergelstpl lst

###########################################

my $indir = $ARGV[0];

opendir DIR, $indir or die "Connot open $indir: $!"; #得到⽬录句柄

unlink "templst";

open(OUTFILE, ">>templst") || die ("Could not open file templst ! \n"); #输出⽂件句柄

foreach my $file (sort readdir DIR){ #⽬录下⽂件排序后遍历⽂件

if($file =~ /^\/){

next; #''''⽬录去除,不包括在遍历的范围之内

}

print "$indir$file\n";

open(INFILE, "$indir/$file") || die ("Could not open file $file ! \n"); #打开⽬录下的⽂件 while ($line = <INFILE>){ #循环输出到输出⽂件中,合并 chomp($line);

print OUTFILE "$line \n";

}

print OUTFILE "\n\n";

close INFILE;

}

close OUTFILE;

rename 'templst','merge_lst'; #⽂件重名名

print "\n merge_lst\n\n";

6

百度文库VIP限时优惠现在开通,立享6亿+VIP内容

立即获取

使用Perl合并文件

使⽤Perl合并⽂件使⽤Perl合并⽂件

有时需要将整个⽬录下的⼩⽂件合并到⼀个⽂件中,以便查阅检索

特性

整个⽬录完全遍历,⾃动存⼊单个⽂件

顺序遍历⽂件

待合并的⽬录

合并后的⽂件内容

syscfg/test1

syscfg/test2

第 1 页

uart/uart7/uart7_dma1

uart/uart7/uart7_dma2

wwdg/prescaler

Perl代码

#!/usr/bin/perl

use warnings;

###########################################

#/mergelstpl lst

###########################################

第 2 页

my $indir = $ARGV[0];

opendir DIR, $indir or die "Connot open $indir: $!"; #得到⽬录句柄

unlink "templst";

open(OUTFILE, ">>templst") || die ("Could not open file templst ! \n"); #输出⽂件句柄

foreach my $file (sort readdir DIR){ #⽬录下⽂件排序后遍历⽂件

if($file =~ /^\/){

next; #''''⽬录去除,不包括在遍历的范围之内

第 3 页

}

print "$indir$file\n";

open(INFILE, "$indir/$file") || die ("Could not open file $file ! \n"); #打开⽬录下的⽂件 while ($line = <INFILE>){ #循环输出到输出⽂件中,合并 chomp($line);

print OUTFILE "$line \n";

}

print OUTFILE "\n\n";

close INFILE;

}

第 4 页

close OUTFILE;

rename 'templst','merge_lst'; #⽂件重名名

print "\n merge_lst\n\n"

这个是没办法已经匹配存入新数组之后去获得的,不过可以尝试其他方式,代码修改为以下吧:

for(my $i = 0; $i < @all_file; $i++){

if($all_file[$i]=~/$str/g){

print "Matched in line:$_,Index is:$i\n"

}

}

这样可以变相实现你的要求

以上就是关于perl 正则表达式 求一个正则表达式。全部的内容,包括:perl 正则表达式 求一个正则表达式。、perl合并文件成空文件夹、perl获取$_的当前数组下标等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9324950.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存