Macでファイル名(拡張子)を一括変換する方法

01_mvall

仕事上、クライアントからいただいたファイルをリサイズしてwebサイトに更新することがあります。

頂いたファイルの拡張子が「.JPG」でそのままアップしたら、ローカル上ではうまく表示されていたんですが、サーバー上だとLightboxがうまく表示されませんでした。
また、数字から始まるファイル名でもうまく動きませんでした。

毎回いただいたファイルの拡張子「.JPG」を小文字の「.jpg」にし、頭文字に「DSC_」をつけていました。
これを手作業でファイル名変更していたのですが、もっといい方法がないかと考えていたところ、やっとみつかりました。

macはUNIX系OSですので、unixコマンドが使えます。
シェルを作成して、ターミナルからシェル実行すればいいわけです!

自宅のパソコンがWindowsなのでキャプチャがなくてわかりにくくて申し訳ないのですが、テキストで説明します。

  1. シェル作成
  2. 対象フォルダにシェルファイルを配置
  3. ターミナルでシェル実行

シェル作成

まずは、テキストエディタを使用してシェルを作成します。
下記を適当な名前で保存します。私は、「mv.sh」という名前で保存しました。

#!/bin/sh
for filename in *.JPG;
do
	mv $filename DSC_${filename%.JPG}.jpg;
	
done
/* mvで変換できるので削除 2015/11/9
rename -A DSC_ *.jpg*/

下記部分は、「シェルを記述しますよ!」という決まり文句なのでシェル作成時の一行目は必ずこれを記入します。

#!/bin/sh

下記部分はフォルダ内にある「.JPG」拡張子のファイルを「.jpg」に変換しますという記述です。
「∗」は、ワイルドカードと言われ、どんな文字が入っていても検索対象としたい時に使用します。
for文でフォルダ内のファイルを1ファイルずつ処理していきます。
「mv 変換前ファイル名 変換後ファイル名」でファイル名変換を行うunixコマンドです。
変換後ファイル名の部分は、ファイル名の頭文字に「DSC_」をつけ、%直後に書いた文字列「.JPG」と一致したら「.JPG」部分を取り除くという記述です。

for filename in *.JPG;
do
	mv $filename DSC_${filename%.JPG}.jpg;
	
done

その後、ファイル名の頭文字に「DSC_」をつけるという処理です。
下記で先ほど拡張子を変換した、「.jpg」ファイルを対象に「DSC_」をつけるという命令です。
なんで「-A」ついているのか記憶にないですが、これでうまく動いています。

/* mvで変換できるので削除 2015/11/9
rename -A DSC_ *.jpg*/



renameコマンドは、最初からMacに入ってなかったかもしれません。
何をインストールしたのか覚えていませんが、下記サイトなど参考になるかもしれません。

Mac で rename コマンド(ファイル名一括変換)

対象フォルダにシェルファイルを配置

今回、ファイル名変更したい対象フォルダ内に先ほど作成した「mv.sh」を配置します。

例えば、「testフォルダ」内にある「1.JPG」「2.JPG」「3.JPG」ファイル名を「DSC_1.jpg」「DSC_2.jpg」「DSC_3.jpg」ファイル名に変更したい場合、「testフォルダ」直下に「mv.sh」を配置します。
02_mvall

ターミナルでシェル実行

ターミナルで作成したシェルを実行します。

ターミナルは、「アプリケーションフォルダ」内の「ユーティリティフォルダ」内にあるターミナル.appを起動します。

起動したら「cd ディレクトリ名」と打ってエンターを押したら、対象ディレクトリに移動します。
今回ですと、「cd testフォルダのあるディレクトリ」を指定すればいいです。
ディレクトリ名を全部入力すると階層が深くて大変なので、「cd 」と打った後、対象フォルダをドラッグするとディレクトリ名が記入されます。
cd の後は半角空白を必ず入れてください。

03_mvall

移動したら、ターミナルに下記コマンドを打ってエンターを押します。
これでファイル名が変換されます。

/bin/bash mv.sh

スポンサーリンク
ad
ad

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
ad