Tentativo di rinominare un gruppo di file.Rinominare i file in modo ricorsivo Mac OSX
posso rinominare tutte le istanze di foo con bar nella directory corrente con:
ls . | awk '{print("mv "$1" "$1)}' | sed 's/foo/bar/2' | /bin/sh
Cosa posso aggiungere per renderlo ricorsiva?
Modifica/La mia soluzione
Non so/capire questa roba tipo shell così ho fatto con un po '(piuttosto sporca) Rubino:
5.times do
Dir["**/*"].each do |f|
file_name = File.absolute_path f
should_rename = file_name.include? "yolo"
new_file_name = file_name.gsub("yolo", "#{@project_name}")
File.rename(f, new_file_name) if (should_rename and File.exists? f)
end
end
È inoltre possibile filtrare il set di file che verrà sostituito dal nome. Ad esempio, dovevo ricorsivamente rinominare tutti i file * .java in * .txt così l'ho fatto in questo modo: 'find. -name "* .java" -exec rinomina '| \ .java | \ .txt |' {} + ' –