これでいいんかな。
% find -type f | xargs fgrep -L '\-*-'
ruby だとどうだろう。
% ruby -rfind -e 'Find.find(".") {|path| (/-\*-/ !~ File.read(path) rescue nil) and puts path }'
長い。これはだめだ…… しかもデバイスファイルがあったらえろい^H^H^Hえらいことになるオマケつき。
% find -type f | ruby -ne '/-\*-/ !~ File.read($_) and puts $_ }'
find を分けるとちょっと短くなった。
(18:40)
遅れに遅れまくった Linux プログラミング本も今日ようやく全体が揃いそう。 ここから読み直して手直しして……今年中に出せるのだろうか。
~/c/linuxintro % list 1. 19 intro.rd ........ Linuxプログラミングを始めよう 2. 42 abstract.rd ..... Linuxのすがた 3. 22 stream_sys.rd ... ストリーム(1)システムコール編 4. 24 stream_stdio.rd . ストリーム(2)stdio編 5. 19 practice1.rd .... 実習(1)headを作る 6. 30 practice2.rd .... 実習(2)grepを作る 7. 15 hier.rd ......... Linuxのディレクトリ構造 8. 21 fs.rd ........... ファイルシステム 9. 23 process.rd ...... プロセス 10. 10 signal.rd ....... シグナル 11. 16 etc.rd .......... プロセスの環境 12. 18 network.rd ...... ネットワークプログラミングの基礎 13. 32 httpd.rd ........ HTTPサーバを作る(1)基本編 14. 21 httpd2.rd ....... HTTPサーバを作る(2)発展編 15. 27 advanced.rd ..... 本書を終えた後は Total 330 Kbytes
(18:55)
そうだ、言ってなかったような気がするので追記しておくと、 今書いてる Linux 本は C の本です。Ruby じゃありません。 (目次を見ればわかるか……)
(03:27)
Copyright (c) 2002-2007 青木峰郎 / Minero Aoki. All rights reserved.
負けた!と思ったのですがfgrepじゃなくてgrepでせうか?いや、-Lオプション知らなかったのでマケはマケなのですが。
え? Emacsのマークの「-*-」を探すんですよね?
fgrepだと何かまずいんでしたっけ。
ちなみに -L は man を見て探しただけです……
わあ、失礼しました。手元では
find -type f | xargs fgrep -L '\-*-'
では期待した動作にならなくてダメやん、と思ったけど
find -type f | xargs fgrep -L -- '-*-'
が正解でした。fgrepは関係なかった。(GNUT grep 2.5.1)
あ、そうか。
fgrep ならバックスラッシュ入れちゃだめですね。
コマンドラインでは -e を使ってたのを日記に
移すときにバックスラッシュに直したのが敗因でした……