求助关于Dir.glob
ruby吧
全部回复
仅看楼主
level 6
💫Wendy💫 楼主
我是ruby的初学者,请大神帮我看一下Dir.glob那行是做什么的,是找当前文件和下一层文件并且后缀名为参数ext值的吗,问什么我测试的结果好像不对啊,求助 @sevk
2014年10月17日 09点10分 1
level 6
💫Wendy💫 楼主
2014年10月17日 09点10分 2
2014年10月18日 04点10分
level 12
试了你的代码,看起来没什麼问题。
而 Dir.glob(*./**/*.* + ext) 只会找到下一层,
如果有再下面几层就不会去找。
所以若把第5行改成像:
files = Find.find(*.*).select{|x| x =~ /\.#{ext}/}
就能够真正地recursive到下面各层目录里搜到各档案。
2014年10月18日 14点10分 3
需在第一行多加个 require "find"
2014年10月18日 14点10分
谢谢哦,[哈哈]还有一个问题 就是怎么用正则表达式将变量里的值替换掉呢?比如说 line = "hello WORLD" str = "WORLD" replace = line.gsub(/怎么写/, "hihihi") puts replace
2014年10月19日 12点10分
就是line是个变量,肯能是用户输入的
2014年10月19日 12点10分
回复 油豆腐细粉 :不用了小吧,我会了 line = "hello WORLD" str = "WoRLD" replace = line.gsub(/#{str}/, "hihihi") puts replace
2014年10月19日 12点10分
level 3
double star 会递归搜索当前目录和子目录的,API 都有例子:
http://yard.ruby-doc.org/core-2.1.2/Dir.html#glob-class_method
问题可能出在 dot,建议在函数入口处打印下当前工作路径(Dir.pwd),files 迭代前打印出 f 的值(File.expand_path(f)),再下判断吧;
2014年10月18日 16点10分 4
嗯,谢谢你[哈哈]
2014年10月19日 12点10分
1