Skip to content

Instantly share code, notes, and snippets.

@NikaZhenya

NikaZhenya/rename-images

Last active Mar 18, 2019
Embed
What would you like to do?
Renombra imágenes en pila.
#!/usr/bin/env ruby
# encoding: UTF-8
# coding: UTF-8
# Instalación:
# sudo wget https://gist.githubusercontent.com/NikaZhenya/b18bd4f4e4a04a9b0036f2e7c90a580b/raw/69df2ea17d88683e5d05b74989b97d27b26b1759/rename-images -P /usr/local/bin && sudo chmod +755 /usr/local/bin/rename-images
require 'fileutils'
begin
dir = '.'
pre = 'img'
img = []
$ext = 0
ARGV.each do |arg|
if arg =~ /^-h$/ || arg =~ /^--help$/
puts "rename-images renombra imágenes en pila."
puts "\nUso:"
puts " rename-images [argumento]"
puts "\nArgumentos:"
puts " --dir=<carpeta> Directorio con las imágenes"
puts " --pre=<texto> Prefijo de las imágenes"
puts " -h | --help Muestra esta ayuda"
puts "\nEjemplos:"
puts " rename-images --dir=Images/"
puts " rename-images --dir=Images/ --pre=image"
puts "\nPor defecto el directorio es el actual y el prefijo es 'img'."
abort
end
# Cambia la ruta o el prefijo
if arg =~ /--dir=/
dir = arg.strip.gsub('--dir=', '').gsub(/\/$/, '')
elsif arg =~ /--pre=/
pre = arg.strip.gsub('--pre=', '')
end
end
# Uniforma cantidad de cifras
def format_num int
zeros = $ext - int.to_s.length
return ('0' * zeros) + int.to_s
end
# Va al directorio y agarra el nombre de las imágenes
Dir.chdir(dir)
Dir.glob('*.*').each do |f|
if File.extname(f) =~ /\.[jpegpntifmb]{2,}/
img.push(f)
end
end
# Ordena las imágenes y obtiene la cantidad de cifras
img.sort!
$ext = img.length.to_s.length
# Renombra imágenes
img.each_with_index do |e, i|
FileUtils.mv(e, pre + format_num(i + 1) + File.extname(e))
end
rescue
puts "ERROR: algo salió mal, ejecuta: rename-images --help."
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.