プロフィール

Author:スクリプトTIPS
シェルスクリプトやコマンド、C言語、PC操作の覚書です。


最近の記事

最近のコメント

最近のトラックバック

月別アーカイブ

カテゴリー

ブログ内検索
RSSフィード
リンク
By FC2ブログ

今すぐブログを作ろう!

Powered By FC2ブログ

ブロとも申請フォーム
QRコード
QRコード

ファイル名一括変更(スクリプト編2) :シェルスクリプト(csh)  

こちらのスクリプトとほぼ同じです。

やりたいことの違いは、出力フォーマットが
IMG_0001.jpgなど4桁でゼロ埋めとしたいという点のみです。

スクリプトの違いは
if文で桁数を判定している点と
ゼロ埋め用の変数を追加している点のみです。


#!/usr/bin/csh -f

set IMG = "IMG_"
set EXTENTION = ".jpg"
set ZERO = "0"
@ number = 1

# remove the space for foreach
set INTENDED_FILES = `ls $argv[1] | sed 's/\ (/(/'`

foreach i ($INTENDED_FILES)
    if($number < 10) then
        set NUMBER_4DIGIT = ${ZERO}${ZERO}${ZERO}${number}
    else if(10 <= $number && $number < 100) then
        set NUMBER_4DIGIT = ${ZERO}${ZERO}${number}
    else if(100 <= $number && $number < 1000) then
        set NUMBER_4DIGIT = ${ZERO}${number}
    else if(1000 <= $number && $number < 10000) then
        set NUMBER_4DIGIT = $number
    else
        echo "over 9999."
        exit
    endif

    set NEW_FILE = ${IMG}${NUMBER_4DIGIT}${EXTENTION}
    #set NEW_FILE = ${IMG}${number}${EXTENTION}
    echo $i | sed 's/(/\\\ \\\\(/' | sed 's/)/\\\\)/' > tmp
    set file_name = `cat tmp`
    
    echo "mv $argv[1]/$file_name $argv[1]/$NEW_FILE"
    #mv $argv[1]/$file_name $argv[1]/$NEW_FILE #-> can't execute

    @ number++
end






スクリプトを作った背景
持っているデジカメがIMG_0001.jpgといったフォーマットでないと
写真をデジカメの画面に表示しない仕様のようなので、
上記フォーマットでない名前の写真(例えば、他社のデジカメで撮った写真)を
画面表示しようとしてもファイル名を変更しないと見られない状況だった。

写真の枚数は300枚くらいあるので、
手作業は面倒ということでWindows上でファイルを全選択して
一括でファイル名を変更したら、IMG_0001 (1).jpgなどといった
ファイルが大量にできてしまい、手作業では非常に面倒なことになった。

そこで、スクリプトを書いて自動でできるようにしたかった。

コメントの投稿















管理者にだけ表示を許可する

トラックバック

この記事のトラックバックURL
http://scriptadversaia.blog25.fc2.com/tb.php/2-76714605