忽略在ARGF中作为参数传递的目录

时间:2016-04-05 13:33:00

标签: ruby

我想编写一个脚本,对命令行中指定的某些文件执行一些操作,但我希望用户能够调用

fooscript *

即使*扩展为包含一些目录名

我知道我可以使用ARGF来处理文件

ARGF.each do |f|
    puts f
end

但是这给了我一个目录的错误。我想跳过目录,或者特别处理它们。实现这一目标最常用的方法是Ruby?

1 个答案:

答案 0 :(得分:2)

您可以在阅读ARGV之前从ARGF过滤它们:

ARGV.reject! {|f| File.directory? f }

# Now there are no dirs in ARGF...
ARGF.each do |l|
  #... etc.