古い記事
ランダムジャンプ
新しい記事
多数のファイルの中身をまとめて処理したい場面は多々あるが、引数がたくさんすぎてエラーになりがち。
% ./get-noun-phase.pl dat/text/*.txt
zsh: argument list too long: get-noun-phase.pl
% cat dat/text/*.txt | ./get-noun-phase.pl
zsh: argument list too long: cat
% ls dat/text/ | egrep '\.txt$' | wc -l
18153

そこで find を使って解決。
% find dat/text/ -name '*.txt' -exec cat {} \; | ./get-noun-phase.pl

xargs との組み合わせが王道。こちらの方が断然速い。
% find dat/text/ -name '*.txt' | xargs cat | ./get-noun-phase.pl

ref.
- いまさらxargsの便利さを主張してみる (ディノオープンラボラトリ)
http://openlab.dino.co.jp/2008/02/20/133431188.html
- [を] find でディレクトリ中のファイルを指定された更新日時条件で削除[2011-11-17-2]
この記事に言及しているこのブログ内の記事