ssplyh 发表于 2017-5-18 12:48:17

[经验总结]Perl输出csv文件

  #!/usr/bin/perl -w

# File:getinfo.pl
# Creator: thinkhy
# Usage: ./getinfo path outputfile
# Date:2010年 03月 07日 星期日 15:23:18 CST

# 回复梁同学的需求,写了个Perl脚本来实现功能:
#ubuntu系统:一个目录下有100个左右dat和txt文件,现需要你利用脚本程序把该目录下的每个文件的大小和行数计算出来,并把结果显示到一个excel文件中,第一列为文件名,第二列为文件大小,第三列为文件中字符的行数!


$path= $ARGV[0];# 查找的路径
$output= $ARGV[1]; # 输出的csv文件名(不包括扩展名)

if(!$path|| !$output) {
print"Usage: ./getinfo path outputfile/nHave fun!/n";
exit;
}

chomp($path);

# 扩展名
$ext1= "dat";
$ext2= "txt";

$cmd= "find $path-regex /".*//.//(//($ext1//)//|//($ext2//)//)/$/"-exec ls -1 /"{}/"//;";

@files= `$cmd`;

$i=0;
foreach(@files) {
$filename= $files[$i];
chomp($filename);

$cmd= "wc -l $filename|cut -d' ' -f1";
$myline= `$cmd`;
chomp($myline);

$cmd= "stat -c /"%s/"$filename";
$mysize= `$cmd`;
chomp($mysize);

$files[$i] = "$filename,$mysize,$myline/n";
$i++;
}

$filename= "$output.csv";
open(LOG1, "> $filename")
ordie"Couldn't open $filenamefor writing: $!";
print"@files";
printLOG1"@files"; # 为什么用@files输出,除第一行外的行首都多了一个空格。

页: [1]
查看完整版本: [经验总结]Perl输出csv文件