使用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";


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM