我在将stdin传输到R脚本时遇到了问题。
下面是我的玩具脚本test.R
:
#!/usr/bin/env Rscript
while(length(line <- readLines('stdin', n=1, warn=FALSE)) > 0) {
write(line, stderr())
# process line
}
我想遍历每一行并做一些处理,下面是我的输入文件input
:
aaaaaa
bbbbbb
cccccc
dddddd
eeeeee
ffffff
如果我做了
cat input | test.R
我只得到:
aaaaaa
有什么我错过的吗?
3条答案
按热度按时间xienkqul1#
如果显式打开stdin连接,则不会发生这种情况。
e3bfsja22#
Jeff和我编写littler就是为了完成这一任务(以及其他一些任务),因为littler,我从来没有仔细研究过Rscript --但原则上讲,Rscript应该工作得很好。
下面是我们早期的一个示例,使用
/bin/ls
的输出(以及awk
的快速过滤器)来汇总文件大小:这里的脚本
fsizes.r
只有三行:vpfxa7rd3#
如果输入的是数字,您可以用途:
您可以使用以下工具进行测试:
改编自此answer并在R 4.2.2中测试。