我有一系列顺序目录,用于从我远程登录并从R终端处理的linux服务器上收集文件。
/ r18_060,/ r18_061,... / r18_118,/ r18_119
每个目录都是记录数据的日期,它包含一系列带有标准前缀的文件,例如" fl.060.gz"
我必须提供一个函数,该函数包含多个system()命令以及当天的linux glob。我想将年份分为60天,以使质量保证/质量控制更易于管理。由于我在glob中从099 - 100过渡,我必须使用大括号扩展来匹配正确的天数。
ls -d /root_driectory/r18_{0[6-9]?,1[0-1]?}
ls -d /root_driectory/r18_{060..119}
当我将这些globs手动输入到我的bash shell中时,所有这些工作正常,但是当system()函数通过R提供类似的命令时,我收到错误。
day_glob <- {060..119}
system(paste("zcat /root_directory/r_18.", day_glob, "/fl.???.gz > tmpfile", sep = "")
>gzip: cannot access '/root_directory/r18_{060..119}': No such file or directory
我知道这可能是system()函数操作的shell中的错误,但是当我查询它时它提供了正确的环境和用户名
system("env | grep ^SHELL=")
>SHELL=/bin/bash
system("echo $USER")
>tgw
有人知道为什么在通过R&#39; system()命令传递时失败了吗?如果不完全删除系统调用,我该怎么做才能解决这个问题?有许多依赖这些函数的脚本,重写整个R脚本系列会让时间过长。
以前我一直在使用50天的间隔来避免这个问题,但我认为这应该是容易改变的东西,并且每年减少一次我的QA / QC脚本。我是Linux操作系统的新手,所以我想我可能只是遗漏了一些明显的东西。