ターミナルで写真データの書き換え

実現したいこと

Macのターミナルで指定フォルダ内の全ての写真の作成日時のデータをexifデータに書き換えたい

発生している問題・分からないこと

写真を一旦Mac標準搭載のフォトアプリに入れてから、設定を「写真の種類 :JPEG」「JPEG品質 :最高」「カラープロファイル:互換性優先」「サイズ:フルサイズ」「対象: タイトル、キーワード、およびキャプション on 位置情報 off」「ファイル名:ファイル名を使用」「サブフォルダのフォーマット: なし」で指定フォルダに書き出しをすると、ターミナルで下のコードを入力すればフォルダ内の写真の作成日時を自動で書き換えられるのですが、フォトアプリに一度入れないと、書き換えてくれません。フォトアプリに入れて書き出す過程で何かファイル形式などが変わっているせいでしょうか?なお、前後どちらも「.jpeg」のファイルです。

エラーメッセージ

error

1エラーコードなどは特に出ない時と、「zsh: no matches found: *.jpeg」のようなのが出る時があります。

該当のソースコード

find . -maxdepth 1 -name ‘*.jpeg’ -print0 | xargs -0 -I @ sh -c "sips -g creation '@' | sed -e '1d' | awk '{print \$2,\$3}' | sed -E 's/([0-9]+):([0-9]+):([0-9]+) ([0-9]+):([0-9]+):([0-9]+)/\\2\\/\\3\\/\\1 \\4:\\5:\\6/g' | xargs -I TS SetFile -d 'TS' '@'"

試したこと・調べたこと

上記の詳細・結果

もとファイルの拡張子が「.JPG」だったので「.jpeg」に書き換えたり、ターミナルの「'.jpeg'」の部分を「'.JPG'」に書き換えたり、別のところで調べてきた

ls -1 *.JPG *.jpeg | while read fn; do   cd="`sips -g creation "$fn" | grep creation`"   if [[ $cd =~ nil ]]; then     echo "No date information in $fn"   else     touch -t `echo "$cd" | awk -F':' '{ print $2$3$4$5 "." $6 }' | sed "s/ //g"` "$fn"   fi   echo "$fn" done

で実行してみたりしてみましたが特に状況の変化はありませんでした。

補足

特になし

コメントを投稿

0 コメント