perl合并文件
使用Perl合并文件
有时需要将整个目录下的小文件合并到一个文件中,以便查阅检索
特性
整个目录完全遍历,自动存入单个文件
顺序遍历文件
待合并的目录
合并后的文件内容
syscfg/test1 syscfg/test2 uart/uart7/uart7_dma1 uart/uart7/uart7_dma2 wwdg/prescaler
Perl代码
#!/usr/bin/perl use warnings; ########################################### #./mergelst.pl lst ########################################### my $indir = $ARGV[0]; opendir DIR, $indir or die "Connot open $indir: $!"; #得到目录句柄 unlink "temp.lst"; open(OUTFILE, ">>temp.lst") || die ("Could not open file temp.lst ! \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 'temp.lst','merge_lst'; #文件重名名 print "\n merge_lst\n\n";
from:乔_木