min117の日記

初期desireもち。趣味Mac,メインFedora,仕事xp。

bash 画像の撮影日時(EXIF)を「YYYYMMDD_HHMMSS」形式で取り出してファイル名に付ける(awkとsedで)

iPhoneで撮ったシンガポール旅行の写真を、Macの「写真」アプリに取り込み&書き出しを行ったら、ファイル名が「IMG_0775.JPG」のようになってしまった。これではいつとった写真か分からない

ーーー

(やりたいこと)

IMG_0775.JPG

 ↓

 ①ファイル内に持っている撮影日時EXIF情報)を取り出す

 ↓

 ②ファイル名に追加する

 ↓

20170228_124116_IMG_0775.JPG

 

ーーー

①をできるかテスト

f:id:min117:20170304131834p:plain

できた。

$ identify -verbose IMG_0775.JPG  | grep DateTime: | awk '{print $2"_"$3}' | sed -e s/://g

printの出力結果を加工するために青文字のところでアンダーバーをいれてるのがコツ

ーーー

ファイル1個(IMG_0775.JPG)を使って、変更後の名前がどうなるかテスト

f:id:min117:20170304132932p:plain

ほしい名前を作れることがわかった。

ーーー

あとは②をするためのfor文を作ればよい。スクリプトにする。

$ vim addEXIF.sh

f:id:min117:20170304133859p:plain

f:id:min117:20170304134011p:plain

実行

$ ./addEXIF.sh

f:id:min117:20170304133853p:plain

うまくいった。

ーーー

EXIF撮影日時情報がないときは処理しないように改良。

f:id:min117:20170304135914p:plain