私はanother post on SOにあるこのコマンドラインプログラムを使用して、ウェブサイトをスパイダーする方法を説明しました。データはどのようにパイプで処理されますか?
wget --spider --force-html -r -l2 http://example.com 2>&1 | grep '^--' | awk '{ print $3 }' | grep -v '\.\(css\|js\|png\|gif\|jpg\)$' > wget.out
私は大規模なサイトをクロールするとき、それが終了するのに長い時間がかかります。一方、ディスク上のwget.outファイルはサイズがゼロです。では、パイプされたデータはいつ処理され、ディスク上のファイルに書き込まれますか?パイプの各段階が完了するまでそれは完了していますか?その場合、クロール全体が終了した後でwget.outがいっぱいになりますか?
プログラムを断続的にディスクに書き込むことで、クロールステージが中断されても出力が保存されるようにするにはどうすればよいですか?
[パイプ内のバッファリングを無効にする](http://stackoverflow.com/questions/1000674/turn-off-buffering-in-pipe) – eumiro