有時須要將整個目錄下的小文件合併到一個文件中,以便查閱檢索code
整個目錄徹底遍歷,自動存入單個文件
順序遍歷文件blog
syscfg/test1 syscfg/test2 uart/uart7/uart7_dma1 uart/uart7/uart7_dma2 wwdg/prescaler
#!/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";