最近、ちょっと画像処理などに、興味があって、flickrから適当なキーワードで
画像のダウンロードしています。
このサービスからダウンロードしたファイルの名前って、こういう感じ↓で、
5652600321_01c420dbec.jpg
やたらめったら長ったらしいので、ちょっと何とかしたいなぁ...と思っておりまして。
ここは、コマンド一発で、カレントフォルダ内のファイル名を一括変換したろうか...と。
renameコマンドや、mvコマンドを、Linuxシェルと組み合わせて実現も考えましたが、
perlで、記述した方が、各種unix/Linux環境での動作の違いに悩まされないだろうと考え、
ちと、スクリプトを作ってみました。
renameシェル
!/usr/bin/perl
use strict;
use warnings;
for (glob("*.jpg")){
my $pre_name = $_;
s/_.*.jpg/.jpg/;
my $new_name = $_;
rename $pre_name, $new_name;
}
機能は、単純で、"_"以降の文字列を、トランケートして、それを使ってリネーム。
正規表現を使った定番の処置ですねぃ。
改良点として、シェルの引数に、正規表現文を与えて、より汎用的にしたり
と出来ます...が、まっ、そこまでする必要は一般的にはないでしょう。