我有一个带有以下SRC = FileList['md/*.md']
的rakefile,但我想排除一些文件
我试过了
SRC = FileList['md/*.md'].exclude("md/header.md")
SRC = FileList['md/*.md'].exclude(/header/)
SRC = FileList['md/*.md'].exclude(/header.md$/)
但它不起作用,总是列出我的所有文件
一个例子:
代替我的rakefile.rb,我有一个目录md,其中包含以下内容:
rakefile.rb
md/
index.md
example.md
header.md
我想列出没有header.md
的所有内容答案 0 :(得分:2)
这对我来说很好用:
p FileList['md/*.md']
#=> ["md/example.md", "md/header.md", "md/index.md"]
p FileList['md/*.md'].exclude("md/header.md")
#=> ["md/example.md", "md/index.md"]
p FileList['md/*.md'].exclude(/header/)
#=> ["md/example.md", "md/index.md"]
p FileList['md/*.md'].exclude(/header.md$/)
#=> ["md/example.md", "md/index.md"]
答案 1 :(得分:0)
不确定发生了什么。也许这是你正在使用的Rake和/或ruby的版本?
我用ruby-1.8.7(rake 0.8.7和rake 0.9.2.2)和ruby-1.9.2(rake 0.8.7和rake 0.9.2.2)测试了你的片段。所有四种配置都给出了预期的输出。
代码:
puts "no exculde:"
puts FileList['md/*.md']
puts '---'
puts "exclude('md/header.md'):"
puts FileList['md/*.md'].exclude('md/header.md')
puts '----'
puts "exclude(/header/):"
puts FileList['md/*.md'].exclude(/header/)
puts '----'
puts "exclude(/header.md$/):"
puts FileList['md/*.md'].exclude(/header.md$/)
输出:
no exculde:
md/example.md
md/header.md
md/index.md
---
exclude('md/header.md'):
md/example.md
md/index.md
----
exclude(/header/):
md/example.md
md/index.md
----
exclude(/header.md$/):
md/example.md
md/index.md