我在一个目录中有多个不同名称的文本文件。我想在所有文本文件中搜索一个字符串,如果在任何文本文件中找到该字符串,我想将该文本文件重命名为 ABC.txt
谁能帮我做这个perl脚本。
这应该可以满足您的需求。
你应该花一些时间弄清楚它是如何工作的。
“我想将该文本文件重命名为 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;
}