2012-04-02 13 views
-4

ファイル名の最後の4文字をすべて大文字にする行は何でしょうか? )gh4567_yh7l_jk12からb。)gh4567_yh7l_JK12最初の文字を変更せずに最後の4文字をすべて大文字にする必要があります。ファイル名の末尾4文字をすべて大文字にするPerlスクリプト

#!/usr/bin/perl 

chdir "folder path"; 

@files = `ls *.tif`; chomp @files; 

foreach $oldname (@files) 
{ 
    $newname = $oldname; 
    #$newname =~ s/(^.{1,8})/\U$1/e; 
    $newname =~ s/(^.{8})/uc($1)/e; 

    print "$oldname -> $newname\n"; 
    rename("$oldname","$newname"); 
} 
+0

私は本当に新しいです。これまで私は考えていた\t $ newname =〜s /({4}。^)/ uc($ 1)/ e; – user1295706

+2

@ user1295706:これをあなたの質問に編集して、なぜこれがあなたがしたいことをしないのかを説明してください(つまり、サンプルの入力、出力、そして出力として何を望みますか) – Mat

+0

これは私が試したものです。正しい:#!/ usr/bin/perl "ディレクトリパス"; @files = 'ls * .tif'; chomp @files; foreach $ oldname(@files) { \t $ newname = $ oldname; \t $ newname =〜s /(^。{8})/ uc($ 1)/ e; \t \t "$ oldname - > $ newname \ n"; \t rename( "$ oldname"、 "$ newname"); } – user1295706

答えて

2

正規表現はperlreに記載されています。

[期間限定宿題と努力の欠如のためにされて、それのために答える。]

関連する問題