有馬総一郎のブログ

(彼氏の事情)

2014年03月02日 15:55:00 JST - 1 minute read - Linux

アルバムアートの画像ファイルに、PNG形式が混じっていないか検索する

どうも、音楽フォルダに格納しているfolder.jpgに、どうもjpegでない画像データが混じっているっぽい。

AlbumArtDownloader XUIで検索してきた画像を一律、folder.jpgで保存しているせいだろう。どのくらいあるんだろうと思って、シェルファイルを作ってみた。
(本当はWindowsのMS-DOSバッチで作りたかったが、dumpコマンドってなくなっちゃったんですね、Windowsの方は後で考えよう)

find_png_file.sh

#!/bin/bash
touch png_file_list.txt
IFS=$'\n'
for file in `find /mnt/hdd/Public/Public_Music/ -type f -name "*.jpg"`
do
  head=`od -t x1 -A n --read-bytes=2 "$file"`
  if [ "$head" = " 89 50" ]
  then
    echo $file >> png_file_list.txt
  fi
done

結果的には思った以上に多くのファイルが引っかかった。

`IFS=$`\n`

は区切り文字をスペースではなく改行にするため。
od -t x1としているのは、リトルエンディアンでもビックエンディアンでも問題が無いように。

これで convertコマンドかませばめでたくjpegになるけど、Windowsにあるのが本体なんだよな…