디렉토리에 다른 이름의 텍스트 파일이 여러 개 있습니다. 모든 텍스트 파일에서 문자열을 검색하고 텍스트 파일에있는 문자열을 찾으려면 해당 텍스트 파일의 이름을 ABC.txt로 바꾸고 싶습니다.텍스트 파일의 이름 바꾸기
누구나이 펄 스크립트를 수행하는 데 도움을 줄 수 있습니까?
디렉토리에 다른 이름의 텍스트 파일이 여러 개 있습니다. 모든 텍스트 파일에서 문자열을 검색하고 텍스트 파일에있는 문자열을 찾으려면 해당 텍스트 파일의 이름을 ABC.txt로 바꾸고 싶습니다.텍스트 파일의 이름 바꾸기
누구나이 펄 스크립트를 수행하는 데 도움을 줄 수 있습니까?
이것은 당신이 찾고있는 것을해야합니다.
시간을 투자하여 어떻게 작동하는지 파악해야합니다.
는
는 희망 당신은 같은 디렉토리에ABC.txt
라는 이름의
one
파일을 가질 수 있음을 알고 있습니다 "내가 ABC.txt에 텍스트 파일의 이름을 변경하려면". 그래서 파일을 만들고 있어요 : 이것은 BTW 안된
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;
}
텍스트를 찾은 후에 파일 읽기를 중단하려면'$ new ++;'다음에'last;를 쓸 여유가 있습니다. –
@JonathanLeffler는 그것을 놓쳤습니다. 고마워요. – chrsblck
당신이 직접 시도하는 일이 있나요? 일반적으로 시도한 것을 보여주는 것이 좋습니다 ... [묻는 방법] (http://stackoverflow.com/questions/how-to-ask)을보십시오. – chrsblck
두 개 이상의 파일에 문자열이 포함되어있는 경우주의하지 않으면 마지막 파일을 제외한 모든 파일이 손실됩니다. 특정 디렉토리에 한 번에 하나의 파일 만 ABC.txt라는 이름으로 저장할 수 있기 때문입니다. –