我使用 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"
是否可以在路径中包含这样的正则表达式?
最佳答案
Logstash File输入api仅支持glob ( Wildcard ),作为 Unix shell 支持。例如,如果您使用 glob 模式列出 Unix 系统中的文件,
$ ls [0-9].csv
可以显示文件“1.csv”
但是当你添加正则表达式时,
$ ls [0-9]{1}.csv
系统显示
ls: [0-9]{1}.csv: No such file or directory
所以,如果你想添加正则表达式,也许你需要匹配globbing pattern 。 比如
path => "/ebs/*/*-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9].csv"
希望这可以帮助你。
关于ruby - 使用 glob 模式查找某些文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21141472/