-1

我在一个目录中有多个不同名称的文本文件。我想在所有文本文件中搜索一个字符串,如果在任何文本文件中找到该字符串,我想将该文本文件重命名为 ABC.txt

谁能帮我做这个perl脚本。

4

1 回答 1

2

这应该可以满足您的需求。

你应该花一些时间弄清楚它是如何工作的。

“我想将该文本文件重命名为 ABC.txt”

希望您知道您只能在同一目录中one命名文件。ABC.txt所以我正在制作文件:ABC.txt ABD.txt ABE.txt等等......

这是未经测试的顺便说一句...

#!/usr/bin/perl

use strict; 
use warnings;

use autodie;
use File::Copy;

my $dir = "test-dir";
opendir(my $dh, $dir);
chdir $dir;

my @files = grep { !-d $_ } readdir $dh; 

closedir $dh;

my $new = "ABC";
for my $file (@files) {
    open my $fh, "<", $file;

    while(my $line = <$fh>) {
        chomp $line;
        if($line =~ /something/) {
            move($file, "$new.txt"); 
            $new++;
            last;
        }   
    }   
    close $fh;
}
于 2013-07-24T06:00:06.540 回答