awkは、Rebol 3を使って大きなテキストファイルをbashパイプやツールで処理するツールのようにしようとしています。私はRebol 3の行ごとにSTDIN行を読むのに問題がありますか?Rebol 3:STDINを行単位で効率的に読む
例えば、このシェルコマンドは3行生成します
$ (echo "first line" ; echo "second line" ; echo "third line")
first line
second line
third line
をしかし、REBOLのの入力言葉は、同時にすべての3行を読み取ります。私は入力をインタラクティブに使用すると、改行が止まると停止することを期待しています。
r3 --do 'while [ x: input ] [ if empty? x [ break ] print x print "***" ]'
abcdef
abcdef
***
blabla
blabla
***
しかし、すべて一緒に実行すると、一度に入力全体が読み込まれます。私はそれをすべて一度に読んで行に分けることができましたが、私は通常、ストリーミングの方法で動作するようにしたいと思います。猫多くの1000-s行。
$ (echo "first line" ; echo "second line" ; echo "third line") \
| r3 --do 'while [ x: input ] [ if empty? x [ break ] print x print "***" ]'
first linesecond linethird line
***
Iはまた、同様の機能を行うこと入力のソースを見ました。私はで文字ごとに文字を読み取ることができ、ループと改行をチェックすると効率的ではないようです。
良い発見。しかし、それはMacOS(OSX)で私にとってはうまくいきません:(ブロックの代わりに34815バイトの 'バイナリ! 'を返す(STDINが使い果たされるまで)。と '/ string')はMacOSでは何もしません:( – draegtun