シェルはスクリプト言語

This entry was posted by on Wednesday, 13 September, 2006
> >やっぱりツールボックスが好き >
という記事を読んで、もにょもにょとした気分になる。
> >こういうことであんまりジジイの繰り言みたいなことを言いたくもないのだが、やっぱりそういうのは find とかほかのツールの領分であって、 H.E. みたいなツールが実現するものではないのではないか、とやっぱり思ってしまう。とはいえ、そこで find だの sed だの awk だのを「覚えろ」を一蹴するのも違うという気がする。あの辺のツールが知られていないのも、そういうものだろうか。しかし grep したことがない人間というのはおれには想像もできないが……。まあそれに、 Windows 環境への気配りという視点はおれは持ってなかったので、それでは(おれはともかく他の人が)困る。 > >で、タイトルに話は行くわけだが、シェルはスクリプト言語なのである。ないならほかのスクリプト言語を使えばよろしい。ああいうのが来たときには、 Ruby とか、まあ Ruby に限る必要はないんだがようするに Windows で使えるスクリプト言語を教えればいいのではないだろうか。 > >たとえば Ruby では、 > >require 'find'
require 'pathname'
Pathname.new("/home/hoge").find do |path|
Find.prune if /^\/secret/ =~ path
puts path if /\.html$/ =~ path && path.file?
end
> >などとすれば、所望のファイル一覧を取得できる。本心を言うとワンライナーでチョチョイと書きたいが(書けないこともないだろうが)、これでも悪くないとおれは思う。 Python だと os.walk なんてのもあるし、 Perl はぜんぜん知らないのだけどきっとやり方もあるだろう。 > >こういうやり方を教え込む方がずっと良いのではないかな。 > >あ、ただしかし、さらに間に挟んで、たとえば H.E. をラップしたツールを Windows 用に作成して公開し、一般ユーザに利用させたいという局面まで想定すると、「まさか Ruby を要求させるのか」「一般ユーザにスクリプト言語を修得させるのか」とかいった、また少し別の問題もあるのかもしれない。 > >ところで、どうでもいいが、 Pathname#find はあるのに prune できないのはちょっとイカンのではないですか。かといって prune は Pathname インスタンスのメソッドであるべきかという疑問がありますが。 >

Comments are closed.