Automator を使ってフォルダ内の aif ファイルを lame で mp3 にエンコードする
下の記事を発展させて、フォルダ内の aif ファイルをまとめてエンコードすることに成功したので、その記録。
前提として、lame の場所は、/Applications/iTunes-LAME.app/Contents/Resources/lame にあるとします。
次に、Automator を組んでいきます。使用するのは、「選択された項目を取得」「フォルダの内容を取得」「シェルスクリプトで実行」。最初の2つは特に問題ないので、肝心なのはシェルスクリプトの中身。
for f in "$@" do if [ ${f##*.} = "aif" ];then /Applications/iTunes-LAME.app/Contents/Resources/lame --preset fast extreme --quiet "$f" "${f%.*}.mp3" fi done
こんな感じで書きます。シェルは /bin/bash、入力の引き渡し方法は「引数として」を選びます。
これで、「ファイル>プラグインとして保存」で対象を Finder にして「フォルダ内のファイルをMP3に変換」のような名前で保存すれば、対象のフォルダのコンテクストメニューを開き、「その他>Automator>フォルダ内のファイルをMP3に変換」で一括してエンコードすることができます。ファイル名は元の aif ファイルと同じで、拡張子だけが mp3 に変わります。
Automator を使って lame エンコードを自動化する
やりたいことはMacにLAMEをインストールしてWAV、AIFFファイルをMP3にお気楽変換と同じなんだけど、自分の環境ではそのままではうまくいかなかったので、その記録。
lame のソースを取得して、コンパイルするところまでは、上記のサイトと同じ。ただ、上記のサイトでは、configure はしているけど、make をしていないので、実際には
env CFLAGS="-fast -march=i686 -msse3 -mfpmath=sse" ./configure make
を実行し(tcsh の場合ね)、生成された ./frontend/lame を適当なところにコピーor移動することになります。
私の場合は、iTunes-Lame でも使いたかったので、/Applications/iTunes-LAME.app/Contents/Resources/ 以下にコピー。既存の lame と置き換えます。
次に、Automator を組むわけですが、上記のページの「シェルスクリプトで実行」の中身を少し変更します。
/Applications/iTunes-LAME.app/Contents/Resources/lame --preset fast extreme --quiet $1
のように、lame のオプションに --quiet を付け加えます。これをしないと、シェルスクリプトが終了しなくなるので要注意。
あとは、「ユーザフォルダ>ライブラリ>Workflows>Applications>Finder」に適当な名前で保存すればよいのですが、初めて Automator を組んだときには、該当するフォルダがなくて焦ります。どうやら、上記の場所に保存することは、Automator で「ファイル>プラグインとして保存」で対象を Finder にした場合と同じようですので、こちらを使って保存します。
これで問題なく動くと思います。
メールアドレスのドメイン名でソートする(MySQL)
メールアドレスのドメイン名でソートするSQLと同じことが MySQL でできないものかと考えていたのですが、SUBSTRING_INDEX 関数を使えば可能らしい。
SELECT SUBSTRING_INDEX([column],'@',-1) AS domain, count([column]) AS count FROM [table_name] WHERE [conditions] GROUP BY domain ORDER BY count DESC
[column] = メールアドレスのカラム名
[table_name] = テーブル名
[conditions] = where節の条件
意外に簡単でした。