• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

批量文件转码压缩打包Perl脚本

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

版权声明:本文为博主原创文章,转载请注明出处https://www.cnblogs.com/sgqhappy/p/9952614.html

我们经常遇到批量文件转码后压缩打包,为此我编写了一个Perl脚本,运行脚本文件后自动实现这些功能。

1.定义数组

#!/usr/bin/perl

use strict;

my @array=(
"110",
"120",
"130",
"140",
"150",
"210",
"212",
"220",
"230",
"310",
"320",
"330",
"332",
"340",
"350",
"352",
"360",
"370",
"372",
"410",
"420",
"430",
"440",
"443",
"450",
"460",
"500",
"510",
"520",
"530",
"540"
);

2.读取文件夹内容

my $utf8_path = "/tmp/";

#count the files.
my $file_count=0;

#get files_name.
my @file_name_array;
opendir(DIR,$utf8_path) or die "can\'t open the directory!";
@file_name_array=readdir DIR;

3.操作文件夹下的文件

这里运用了正则表达式,判断文件夹下的文件是否符合要求,如果符合,则进行后面的计算。

实现文件计数,文件名处理,转码等功能。

foreach my $file_name (@file_name_array){
    if($file_name=~/.*_M_0000_0000/){
        #print the file count.
        $file_count++;
        print "File number: ".$file_count."\n";
        
        #change files name
        my $mv="mv "."utf8_path"."/$file_name"." $utf8_path"."/$file_name".".utf8";
        `$mv`;
        print "$mv"."\n";
        
        #file_name from lower to upper.
        my $file_name_upper=uc(substr($file_name,0,(length($file_name)-4))).".txt";
        print "$file_name"."\n";
        print "$file_name_upper"."\n";
        
        #This is data cat from utf8 to gbk.
        my $cat="cat "."$utf8_path"."$file_name"." | iconv -f utf8 -t gbk -c > "."$utf8_path"."$file_name".".txt";
        
        #This is prompt message.
        print "cat "."$file_name"." success!"."\n\n";
    }else{
        print "$file_name "."is not the kind of file type you want!\n\n";
    }
}

4.将文件打tar包

#This is tar function.
my $tar="tar -zcvf "."gz.tar"." *.txt";
`$tar`;
print "$tar"." success!\n";

5.将tar包放到指定路径下

#loop every number,tar and move files to 36 directories.
foreach my $number(@array){
    #define path.
    my $gbk_path="/data/u"."$number"."/test/";
    my $cp="cp gz.tar "."$gbk_path";
    my $cp2="cp dl.tar "."$gbk_path";
    `$cp`;
    `$cp2`;
    print "$cp"." success! "."\n";
    print "$cp2"." success! "."\n";
};
print "============$file_count"." files cat"." success!!!=============\n";

 

作者:sgqhappy
出处:https://www.cnblogs.com/sgqhappy/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Perl 对象化编程的实现发布时间:2022-07-22
下一篇:
perl数组高级发布时间:2022-07-22
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap