加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl批量处理文件

发布时间:2020-12-15 23:57:15 所属栏目:大数据 来源:网络整理
导读:################################################################################ fileGs# 功能: 将指定目录下所有.c和.h文件的tab转成空格、删除行尾空字符# 说明: 此脚本提供了批量处理文件的方法,修改单行线之间的内容可以完成不同的功能# ---------
###############################################################################
# fileGs
# 功能: 将指定目录下所有.c和.h文件的tab转成空格、删除行尾空字符
# 说明: 此脚本提供了批量处理文件的方法,修改单行线之间的内容可以完成不同的功能
# ------------------------------------------------------------By G-Spider @2014
###############################################################################
#!/usr/bin/perl
use strict;
use File::Find;
use File::Copy;
#==============================================================================
# tab 所占字节数,根据实际情况调整,一般设为8或4
my $TABLEN = 4;
# 目录请使用单引号包含,可包含多个目录,逗号分隔
my @AllDir = (
            'E:test',);
#==============================================================================
foreach (@AllDir){
    find(&;underscores,$_);
}
print "all complete.n";
#==============================================================================
sub underscores{
    next if -d $_;
    next unless /(.c$)|(.h$)/;
    my   $oldfile  = $_;
    my   $newfile  = "$_.".int(rand(1000)).'.tmp';
    my   $flag     = 0;
    unlink glob '*.tmp';
    open (my $hout,">>",$newfile) or die $!;
    open (my $hin,"<",$oldfile) or die $!;
    for (<$hin>){
    #--------------------------------------------------------------------------
        while (/(t)/g){
            my $curindex = pos;
            my $tmp = ' ' x (($curindex % $TABLEN) ? ($TABLEN + 1 - $curindex % $TABLEN) : 1);
            s/(t{1})/$tmp/;
            $flag |= 1;
        }
        $flag |= 2 if s/[ t]+$//;
        print $hout $_;
    #--------------------------------------------------------------------------
    }
    close $hout;
    close $hin;
    if ($flag){
        chmod 0755,$oldfile;
        copy($newfile,$oldfile);
        print "$oldfile modify complete. %%%%%%%%%%%%% code [$flag]n";
     }
     else{
        print "$oldfile isn't change.n";
     }
     unlink $newfile;
}
1;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读