Pour renommer plusieurs fichiers de façon similaire, j'ai trouvé le script suivant très utile et robuste au fil des ans.
Il met juste la sortie de ls
dans votre éditeur de texte préféré. Il suffit de modifier le texte, de l'enregistrer et de le fermer. Les fichiers sont renommés en conséquence.
C'est particulièrement génial lorsque vous combinez cela avec l'édition de la colonne Vi ( Ctrl-v
sélectionnez un bloc, I
pour insérer avant ou A
pour insérer après, tapez le texte, Esc
).
#!/usr/bin/ruby
RM = '/bin/rm'
MV = '/bin/mv'
from = Dir.entries('.').sort; from.delete('.'); from.delete('..')
from.sort!
from.delete_if {|i| i =~ /^\./} # Hidden files
tmp = "/tmp/renamer.#{Time.now.to_i}.#{(rand * 1000).to_i}"
File.open(tmp, 'w') do |f|
from.each {|i| f.puts i}
end
ENV['EDITOR'] = 'vi' if ENV['EDITOR'].nil?
system("#{ENV['EDITOR']} #{tmp}")
to = File.open(tmp) {|f| f.readlines.collect{|l| l.chomp}}
`#{RM} #{tmp}`
if to.size != from.size
STDERR.puts "renamer: ERROR: number of lines changed"
exit(1)
end
from.each_with_index do |f, i|
puts `#{MV} -v --interactive "#{f}" "#{to[i]}"` unless f == to[i]
end
J'appelle ce script renamer
.