如何復制僅以字母開頭而不以數字開頭的檔案夾。我正在嘗試類似的東西
Dir.glob("folderpath/[a-z]").each do|f|
FileUtils.cp_r f, "dest"
end
uj5u.com熱心網友回復:
Dir glob 期望匹配整個名稱(與正則運算式不同)。
因此,您需要執行以下操作:
Dir.glob("folderpath/[a-z]*").each{|f|FileUtils.cp_r(f,"dest")}
(do如果您愿意,請使用語法)
見https://ruby-doc.org/core-3.0.0/Dir.html#method-c-glob
請注意,如果底層檔案系統不區分大小寫,則匹配不區分大小寫,盡管模式是小寫的。
例如,在 Mac 上它匹配 README 等
如果您更喜歡正則運算式,或者需要更復雜的測驗,您可以使用:
Dir.foreach("folderpath").
select{|n|n.match(/^[a-z]/)}.
map{|n|File.join("folderpath",n)}.
each{|f|FileUtils.cp_r(f,"dest")}
這里我們使用正則運算式。請注意,即使底層檔案系統不區分大小寫,它也是區分大小寫的。如果需要,在最后一個 / 之后添加 i 以使大小寫不敏感。在map這里添加的檔案夾路徑,以便您可以添加cp_r
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/331855.html
