
in1.jpg, in2.jpg, in3.jpg 등의 이름을 가진 많은 파일의 이름을 out0001.jpg, out0002.jpg, out0003.jpg 등으로 바꾸고 싶습니다. 누군가 Perl 스크립트를 사용하여 솔루션을 제안해 주시면 감사하겠습니다. rename
(또는 prename
)은 Perl 배포판과 함께 제공됩니다.
답변1
그냥 재미로 무료로...
원래 이름을 유지하기 위해 링크를 사용하겠지만 원하는 경우 링크 명령( ln
)을 이동 명령( )으로 변경할 수 있습니다(주석으로 추가됨).mv
#!/usr/bin/perl
# Creates link files with ascending sequence numbers ($USE_SEQ=1) or original numbers
# ($USE_SEQ=0):
$USE_SEQ = 1;
unless(opendir(DIRECTORY,".")) { die "Unable to open current directory.\n"; }
@files = readdir(DIRECTORY);
closedir(DIRECTORY);
$seqnum = 1;
foreach $file (@files) {
if ($file =~ /\.jpg$/i) {
($number) = ($file =~ /(\d+).jpg/i);
$number = $seqnum++ if $USE_SEQ;
$padded_number = sprintf "%05d", $number;
$padded_name = "out" . $padded_number . ".jpg";
`ln -s "$file" $padded_name`;
# `mv "$file" $padded_name`; # untested
}
}