我有多个文件(文件夹中包含成千上万的文件),例如:
红宝石 - 删除与名称匹配模式的所有文件
...
page_bonus.txt
page_code1.txt
page_code2.txt
page_text1.txt
page_text2.txt
page_text3.txt
...
如何删除所有page_code *文件?
注:我不希望使用文件实用程序或外壳
我有多个文件(文件夹中包含成千上万的文件),例如:
红宝石 - 删除与名称匹配模式的所有文件
...
page_bonus.txt
page_code1.txt
page_code2.txt
page_text1.txt
page_text2.txt
page_text3.txt
...
如何删除所有page_code *文件?
注:我不希望使用文件实用程序或外壳
Dir::glob
支持单个字符通配符(即?
)。根据您的示例,您可以使用?
找到给定目录中的相应文件,然后将其删除。
Dir.glob('/home/your_username/Documents/page_code?.txt').each { |file| File.delete(file)}
删除带通配符的文件。
Dir.glob("/tmp/files/*").select{ |file| /MY STRING/.match file }.each { |file| File.delete(file)}
中选择正则表达式来抓住你想要的文件。
工作得很好,非常感谢^^ –
...如果单个字符的通配符不够用,使用'*'返回所有文件并在'each'之前插入'select'。即使使用File.join Dir.glob(File.join(File.dirname(__ FILE__),'./tmp/*。png'))也可以运行 –
。 –