catしきれない時はxargsを使う
booksディレクトリ下の*.txtを全て標準出力経由でrubyのプログラムに渡したい時
cat books/*.txt | nkf -u | ruby -Ku make_dict.rb > dict.txt
これでいいのだが、ファイルが多いと "argument list too long" と言われてしまう。
xargsとfindを使ったらできた。
find books | grep "\.txt$" | xargs cat | nkf -u | ruby -Ku make_dict.rb > dict.txt
xargs
xargsは引数に与えられたコマンドに、標準入力を改行区切りで渡す
find
lsだとファイル名がフルパスで出なかったので、findでディレクトリ名を指定した。