如何解决r ls list.files 模式大括号扩展通配符不起作用
我需要在 R 函数 pattern
和 base::ls
的 base::list.files
参数中使用大括号展开。例如:
# in terminal
ls
# string1 stringX stringYZ
ls string{1,X}
# string1 stringX
但是
# in R
list.files()
# "string1" "stringX" "stringYZ"
list.files(pattern="string{1,X}")
# error: invalid 'pattern' regular expression
list.files(pattern="string\\{1,X\\}")
# character(0) # i.e. finds nothing
list.files(pattern=glob2rx("string{1,X}"))
# character(0) # i.e. finds nothing
base::ls
也是如此。
非常感谢您的帮助,
克里斯
解决方法
list.files(pattern="^string(1|X)$")
有效(list.files(pattern="string(1|X)")
也是如此)。
谢谢!
sh 中类似
filename=log_file-$(date +%Y.%m.%d)
touch $filename
{ who; df -h; ps -aux; } > $log_dir/$filename
的结果,您可以使用:
ls string{1,X}
或者,正如@wiktor-stribiżew 在评论中指出的那样,您可以使用:
list.files(pattern="^string(1|X)$")
要进行完整的字符串匹配,您必须用 list.files(pattern="^string[1X]$")
和 ^
将模式括起来。感谢 @wiktor-stribiżew 的评论。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。