« 2010年7月 | トップページ | 2010年9月 »

2010年8月24日 (火)

Automatorでの条件分岐 その2 邪道編






Automatorでシェルの引数を得ようとしている方がいたみたいなので前回の記事を補足しておきます。

わたしも最近ほとんどAutomatorやAppleScriptをいじってないので最新の情報はわかりませんが、基本的にシェルに渡した処理は戻ってこないと思います。それならシェルやAppleScriptで条件分岐してもその後にAutomatorで処理できなければ役に立たないと思ってしまいそうですが、そうでもないんですねえ。OS Xにはautomatorという非常に便利なコマンドがあるんです。それを使えばAutomatorのワークフローに処理をさせることができます。

端折って書きますと、例えばAutomatorで「シェルスクリプトを実行」を選んで条件分岐処理をさせ、そのシェルスクリプトの中でautomatorコマンドを使って別途用意したワークフローに処理をさせるという感じです。Automatorアプリを作ったとしたら、その他に条件分岐後の処理用にワークフローを用意しなければなりませんが、これがけっこう便利です。Automatorのワークフローでなければ面倒くさいもしくはできないという処理はけっこうあると思います。面倒なので今あまり時間がないので先日書いたbashでの条件分岐の例を流用してみます。最後のPDF書類の処理を単なるファイルの移動からautomatorコマンドでデスクトップに保存してあるwatermark.workflowというワークフローを使いウォーターマークを入れレッドのラベルを付けてからデスクトップにPDF_tmpというフォルダーを作ってそこに(追記をご覧ください)保存するという処理に変えてみました。最初の条件分岐をするAutomatorアプリはドロップレットにしてあります(というか自然にそうなりますが)。つまり任意の様々なタイプのファイルを複数アプリにドロップしたところから処理が始まります。

追記 知り合いからどうせだったら最後の処理を他の条件と合わせたらという指摘がありましたので、二つほどワークフローを作ってみました。一つはウォーターマークを入れレッドのラベルを付けた後にFinder項目を移動を使って書類フォルダーのなかのPDFフォルダーに移動。もう一つは同じことをシェルスクリプトにやらせています。シェルスクリプトでわざわざやったのは、ここでまたautomatorコマンドを使って何らかの処理をさせることが可能ということを書きたかっただけです。つまりはワークフローにシェルスクリプトを盛り込むことでautomatorコマンドを使いながら延々と違ったワークフローの処理を繋げることができます。

bashでの条件分岐の例
for f in "$@"
do
 if [ ${f##*.} = "wav" ];
 then
   mv $f ~/Music/WAV;
 elif [ ${f##*.} = "mp3" ];
 then
   mv $f ~/Music/MP3;
 elif [ ${f##*.} = "txt" ];
 then
   mv $f ~/Documents/TEXT;
 elif [ ${f##*.} = "doc" ];
 then
   mv $f ~/Documents/DOC;
 elif [ ${f##*.} = "pdf" ];
 then
   automator -i $f ~/Desktop/watermark.workflow;
 fi
done


watermark.workflowの内容

Watermark1_4



1.Finder項目を移動の場合

Watermark2_2

2.シェルスクリプトの場合

Watermark3_2



上記の例ではautomatorコマンドを使っているのはPDF書類の場合だけですが、他のファイルも別のワークフローで処理させたければ同じように処理を追加すればいいだけです。上記の例はかなり大雑把ですので、細かいところは各自煮詰めてください。

2010年8月22日 (日)

キリル文字を使う言語の単語をソートするには

どうすれば良いの?という全く未知の領域の質問を知り合いの知り合いのまたその知り合い(いい加減にしろって?)にされました。ということで久々のスクリプトネタです

無知なわたしはPerlはUTF-8がわかるから、それでやったらどう?と言ったのですが、それではダメなんだそうです。これから行くから一緒に見てほしいだなんて。明日からまた旅行だし、折角の週末をゆっくりしようと思っていたのに だいたい日曜の朝8時に電話をかけるなんて非常識だ!なんてお世話になっている人の知り合いに言えるはずもなくしかたなく引き受けました。で、一人で来るのかと思ったら4人も!でもね、かわいいロシア人の娘をつれて来たから喜んで引き受けましょうと先きほどまでの不機嫌はどこかへ消えたデブネコでした。まさかこれが狙いだった?そうだとしたらS匠に入れ知恵されたね。

で、見せてもらったんですが、これ何ということばですか?なにかうどの大木のような名前でした。うどはいいんですけど、きみ、なんで偉そうに新しいMacBook Proをもっているの?思いっきりペタペタと触って手垢つけてあげるからね

で、やっと本題。フムフム。確かにPerlのソートでは彼らの辞書らしきものと同じアルファベット順にはなりませんね。しかしわたしの知識もISO-8859-1とUTF-8に限られているんですが。だって北欧では他に必要ないもんね。実は日本語のことだってよく知らないのに。で、とっさに閃いたのがMS Wordの使用。Wordファイルにテキストをコピーしてソートしたらバッチリ!やったーと思ったのもつかの間。そんなのは前から知っていると言われてしまいました。お見それしました 大量に処理するし、後で色々なファイルに変換するからWordでは不便なんだそうです。

かわいい娘を前にして無知を曝け出しネット検索を始めるわけにもいかず、ない頭で必死に考えましたよん。10分ほどですが で、ない頭の割にはあっさり解決方法が浮かびました〜!キリル文字というから難しく思ってしまいましたが、よ〜くよく考えてみれば彼らが望む順番で文字に番号を割り当ててソートすればいいだけではないですか〜。ソートし終わったら番号を文字に戻せばいいんだし。文字は大小合わせて76文字なんですね(キリル文字って点付きやら点なしやら色々あるんですねえ。知らんかった。勉強になります〜。明日にはもう覚えてないでしょうけど

で、結果はうまくいきました。手順をもう一回まとめますと、まずはキリル文字を全てs/а/01/g 〜 s/я/76/gみたいにソートしたい順番に番号を振り当てて置換します。はあとで数字が混ざらないようにするための適当な区切り文字ですが、Perlのメタ文字と勝ち合わなければなんでもいいです。で、この後ソートして、その後に数字をs/76/я/gみたいにして文字に戻すだけです。もちろんPerlでなくともどのスクリプト言語でもできますが、痴漢は速いにこしたことがありませんからね。あとPerlや他のスクリプト言語でやってもおもしろいんですが、AutomatorでWordを使えば処理は重たくなるけど手順的にはもっとスマートにできそうな気がしますな。そのうち実験してみますか。

と、いうことで慌ただしい朝になってしまいましたが、少しは良いことも。昼食をごちそうしてくれるそうです と、待ち合わせの時間までの暇を持て余すデブネコでした〜♪

2010年8月20日 (金)

新宿鮫 Xがネットで

やっているなんて知らなかった。S匠、情報ありがとうございました!タックタック

週末にじっくり読みたいと思います。






2010年8月16日 (月)

iPhone 4のFaceTimeを見た時に

手話を母語としている人には朗報ではないかと思っていたんですが、そのことをメインにしたCMが出ましたね。すゔぁりえでは他の国と一緒で手話もそうでないのも全て入ったCMになっています。知り合いの知り合いで手話の先生をしている人達がいて、何年も前にすごく高いテレビ付きの携帯で会話しているのを見たことがあります。iPhone 4は安いとは言わないですけど、今後この技術が3Gでもつかえるようになって標準になればテレビ付きの携帯とかは一気になくなりそうですね。そういえばあの手話を話す(というんですよね、師匠?)美女は今どうしているんだろう...

2010年8月13日 (金)

バリアーは今のところは







まだ効果があるみたいです。例のストーカーらしき訪問者はビビってしまったのか8月1日以来ここへは来ていません。こういうことやる人程びくびくしているのでは?まあ、ストーカーしていたのがばれたら社会的地位はもうないも同然ですからね。罠を張ってもう少し遊んでやった方が良かったかな?

2010年8月12日 (木)

iOS 4.0.2が







出ていますね。セキュリティアップデートですな。Appleにしてはすばやい対応でしたね

2010年8月11日 (水)

新しいところは







相変わらずの放置プレイなのでこちらに書きます。個人的な意見ですが、同じ失敗を何度も繰り返すということは、学ぶ気が全くないか、もしくは思考するという基本的な部分で大きな問題あるのだと思います。貴重な時間を使われてしまうだけですし、そういう人にはあまり関わり合いにならない方がいいと思いますが。人間誰にでも失敗はありますが、10年以上も同じようなことで人に迷惑をかけることを繰り返すというのは本当の意味での失敗ではないでしょう。自分さえ良ければ他人のことはどうでもいいと考えているとしか思えませんね。しかも忙しい人の時間をわざわざ取ってつまらない日常のグチを聞かせるとは...わたしから見ると完全に普通ではないですねえ。頼み事をしてしまったのを負い目に感じることはないと思いますよん。色々と大変ですねえ...

2010年8月 5日 (木)

MacBook Pro (early 2008)のメモリをKVR667D2S5/4Gで6GBに増設







しました。4GB超のメモリは買い替えるまで控えようと思っていたのですが逝きました。最近Parallelsをよく使うためかメモリの消費が激しくてうんざりしていたところ、昨日某ショップで4GBメモリ発見。衝動買いしてしまいました。(ユーロ換算で150ユーロくらいです)Parallelsを使わなければ4GBでも快適だと思っていたのですが、やはりメモリも多ければ多いほど快適さが増しますね。速くはなっていませんが、かなりの数のアプリを立ち上げても今までよりかなり快適!次のノートブックは最初から8GBにしないと。ちなみにXbenchは154ポイントでした。今のMacBook Proは1TBのディスクを入れたらアップデートは打ち止めです。はやく出ないかな...

2010年8月 4日 (水)

やっとWD10TPVTの価格が







すゔぁりえで1149クローネくらいまで落ちて来たみたいですね。フィンランドで見た時はユーロで150ユーロくらいでした。二つくらい逝きますか...でも買ったとたんに9.5ミリ厚のが出そうな気がします。12.5ミリ厚のが出てから半年以上経ちますしそろそろでしょう。サムスンが9.5ミリ厚で500GB一番乗りした時には9.5ミリ厚の1TBもサムスンが3プラッターで一番乗りすると思っていたのですが、あれ以降3プラッターのはこの前発表した12.5ミリ厚のしか出していないですし、おそらく9.5ミリ厚で3プラッターは性能がコストに見合わないのでしょうねえ。

« 2010年7月 | トップページ | 2010年9月 »

2019年9月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30          

最近のトラックバック