Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1286036
  • 博文数量: 168
  • 博客积分: 3483
  • 博客等级: 中校
  • 技术积分: 1696
  • 用 户 组: 普通用户
  • 注册时间: 2006-02-06 13:17
文章分类

全部博文(168)

文章存档

2015年(6)

2014年(9)

2013年(47)

2012年(11)

2011年(13)

2010年(18)

2009年(11)

2008年(42)

2007年(11)

分类:

2008-07-14 20:52:35

遍历当前目录下所有文件,并作如下操作:
    1. 将 \r\n 替换为 \n
    2. 删除行尾连续空白符
    3. 将 .c .h 文件中的tab键替换为4个空格

#!/usr/bin/perl


use File::Find;
use File::Copy;

my @files;
my @dirs = ".";
my $extention = ".bak";

find(sub { push(@files, $File::Find::name) if -f && !/\.bak$/ }, @dirs);

for (@files) {
    my $file = $_;
    my $bakfile = $file . $extention;

    if (!/\.s?o$/) {
        print $file . "\n";
        copy $file, $bakfile or die "Copy failed: $!";
        open FO, $bakfile or die "Cannot open '$bakfile': $!";
        open FN, ">$file" or die "Cannot open '$file': $!";

        if (/\.(pl|[ch])$/) {
            while () {
                s/\t/    /g;
                s/[ \r]+$//;
                print FN $_ or die "write '$file' err: $!";
            }
        } else {
            while () {
                s/[ \t\r]+$//;
                print FN $_ or die "write '$file' err: $!";
            }
        }

        close FN;
        close FO;
        unlink $bakfile;
    }
}


阅读(1269) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~