⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 04 - deleting files that match a regular expression.rb

📁 O Reilly Ruby Cookbook source code
💻 RB
字号:
def delete_matching_regexp(dir, regex)  Dir.entries(dir).each do |name|     path = File.join(dir, name)    if name =~ regex      ftype = File.directory?(path) ? Dir : File      begin        ftype.delete(path)      rescue SystemCallError => e        $stderr.puts e.message      end    end  endend#---require 'fileutils'tmp_dir = 'tmp_buncha_files'files = ['A', 'A.txt', 'A.html', 'p.html', 'A.html.bak']directories = ['text.dir', 'Directory.for.html']Dir.mkdir(tmp_dir) unless File.directory? tmp_dirfiles.each { |f| FileUtils.touch(File.join(tmp_dir,f)) }directories.each { |d| Dir.mkdir(File.join(tmp_dir, d)) }#---Dir.entries(tmp_dir)# => [".", "..", "A", "A.txt", "A.html", "p.html", "A.html.bak", #     "text.dir", "Directory.for.html"]delete_matching_regexp(tmp_dir, /^[A-Z].*\.[^.]{4,}$/)Dir.entries(tmp_dir)# => [".", "..", "A", "A.txt", "p.html", "A.html.bak", "text.dir"]#---def move_matching_regexp(src, dest, regex)  Dir.entries(dir).each do |name|     File.rename(File.join(src, name), File.join(dest, name)) if name =~ regex  endend#---def append_matching_regexp(dir, suffix, regex)  Dir.entries(dir).each do |name|     if name =~ regex      File.rename(File.join(dir, name), File.join(dir, name+suffix))     end  endend#---def each_matching_regexp(dir, regex)  Dir.entries(dir).each { |name| yield name if name =~ regex }end#---def append_matching_regexp(dir, suffix, regex)  each_matching_regexp(dir, regex) do |name|    File.rename(File.join(dir, name), File.join(dir, name+suffix))  endend#---def delete_matching_regexp_recursively(dir, regex)  Find.find(dir) do |path|    dir, name = File.split(path)    if name =~ regex      ftype = File.directory?(path) ? Dir : File      begin        ftype.delete(path)      rescue SystemCallError => e        $stderr.puts e.message      end    end  endend#---

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -