我正在嘗試使用awk類似於使用Rebol 3通過bash管道和工具處理更大文本文件的工具。在Rebol 3中,我在逐行讀取STDIN時遇到問題?Rebol 3:有效地逐行讀取STDIN(使awk像工具一樣)
例如這個外殼命令產生3行:
$ (echo "first line" ; echo "second line" ; echo "third line")
first line
second line
third line
但雷博爾的輸入字讀取同時所有3條線。我期望它停在換行符,因爲它會停止,如果你使用交互輸入。
r3 --do 'while [ x: input ] [ if empty? x [ break ] print x print "***" ]'
abcdef
abcdef
***
blabla
blabla
***
但是當我運行它一起這一次讀取整個輸入。我可以一次讀完所有內容並分成幾行,但我希望它能夠以「流式」方式工作,因爲我通常在許多1000-s行中使用cat。
$ (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
***
我也看了輸入的來源做出了類似的功能。我可以在的每個字符中讀取字符,而循環並檢查換行符,但這看起來效率不高。
約好找'讀取標準輸入/ lines'緩衝。但是它在MacOS(OSX)上對我沒有任何作用::(而不是'block!'它返回一個34815字節的「二進制!」(直到STDIN耗盡)。NB。實際上'/ lines'和'/ string')在MacOS上不做任何事情:( – draegtun