Ruby 使用glob模式查找某些文件
我使用Ruby 使用glob模式查找某些文件,ruby,regex,path,glob,logstash,Ruby,Regex,Path,Glob,Logstash,我使用logstash不断查找新文件,并将数据流传输到不同的系统 现在我正在使用以下配置: input { file { type => "source" path => "/ebs/**/*-*csv" # recursivly check subfolders sincedb_path => "/usr/local/logstash/sincedb" sincedb_write_interval => 1 discove
logstash
不断查找新文件,并将数据流传输到不同的系统
现在我正在使用以下配置:
input {
file {
type => "source"
path => "/ebs/**/*-*csv" # recursivly check subfolders
sincedb_path => "/usr/local/logstash/sincedb"
sincedb_write_interval => 1
discover_interval => 4
start_position => "beginning"
stat_interval => 1
}
}
工作正常,但我想做的是:
path => "/ebs/**/*-[0-9]{10}.csv"
可以在路径中包含这样的正则表达式吗?您可以使用,它非常适合作业:
require rake
FileList.new("/ebs/**/*-[0-9]{10}.csv")
应该为您做这项工作您可以使用,它完全适合您的工作:
require rake
FileList.new("/ebs/**/*-[0-9]{10}.csv")
应该为您完成这项工作Logstash输入api只支持(),就像Unix shell支持一样。例如,如果您使用glob模式列出Unix系统中的文件
$ls[0-9].csv
它可以显示文件“1.csv”
但是当你添加正则表达式时
$ls[0-9]{1}.csv
系统显示
ls:[0-9]{1}.csv:没有这样的文件或目录
所以,如果要添加正则表达式,可能需要匹配。
比如
path=>“/ebs/*/*-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9].csv”
希望这能帮助你 Logstash输入api只支持(),就像Unix shell支持一样。例如,如果您使用glob模式列出Unix系统中的文件
$ls[0-9].csv
它可以显示文件“1.csv”
但是当你添加正则表达式时
$ls[0-9]{1}.csv
系统显示
ls:[0-9]{1}.csv:没有这样的文件或目录
所以,如果要添加正则表达式,可能需要匹配。
比如
path=>“/ebs/*/*-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9].csv”
希望这能帮助你 这是有道理的。但为此,我假设需要修改源代码并重新编译代码。在我的情况下,这不是一个真正的选择。我正在寻找一些特定于logstash的解决方案。抱歉,缺少信息
logstash
是用JRuby
@Vor编写的,我今天晚些时候会查看源代码,看看是否可以提交patch@Vor不确定项目中到底使用了什么,今天在IRC上进行了检查,但如果它是Dir.glob
,那么我假设它与Rake::FileList
有类似的行为,您可以尝试您的模式,看看它是否没有问题,如果有问题,那么您可以访问irc#logstash或发表评论,我会看一看谢谢您的帮助,不幸的是,此正则表达式在logstash
中不起作用。试过了,从另一个答案中得到了一个建议,它是有效的。这是有意义的。但为此,我假设需要修改源代码并重新编译代码。在我的情况下,这不是一个真正的选择。我正在寻找一些特定于logstash的解决方案。抱歉,缺少信息logstash
是用JRuby
@Vor编写的,我今天晚些时候会查看源代码,看看是否可以提交patch@Vor不确定项目中到底使用了什么,今天在IRC上进行了检查,但如果它是Dir.glob
,那么我假设它与Rake::FileList
有类似的行为,您可以尝试您的模式,看看它是否没有问题,如果有问题,那么您可以访问irc#logstash或发表评论,我会看一看谢谢您的帮助,不幸的是,此正则表达式在logstash
中不起作用。试过了,从另一个答案中得到了一个建议,它是有效的。