1 votos

Mover archivos si el nombre de archivo que no existe, teniendo en cuenta la extensión de

Por ejemplo, en Una carpeta, he foo.jpg y bar.jpg. En la carpeta B, tengo foo.png y foobar.png. Sólo necesito una versión del archivo, independientemente de la extensión, así que lo único que desea mover foobar.png a la carpeta A. ¿Cómo puedo hacer esto? Este es un simple ejemplo, hay casi 2.000 archivos en la carpeta B, por lo que comparar de forma manual sería muy tedioso.

1voto

ganbustein Puntos 1016

Guardar los siguientes como un archivo de texto y hacerlo ejecutable. Invocar desde la línea de comandos, de paso en las rutas de acceso a Una carpeta y la carpeta B.

#!/usr/bin/ruby

if ARGV.size != 2
    STDERR.print "#Usage: #{$0} source/folder destination/folder\n"
    exit 1
end

a = ARGV[0].chomp("/")
b = ARGV[1].chomp("/")
old_bases = Hash.new
Dir.foreach(b) do |f| 
    next if f =~ /^\./
    old_bases[f.sub(/\.[^.]*$/, "").downcase] = true
end
Dir.foreach(a) do |f|
    next if f =~ /^\./
    fbase = f.sub(/.[^.]*$/, "").downcase
    unless old_bases[fbase]
        File.rename( "#{a}/#{f}", "#{b}/#{f}" )
        old_bases[fbase] = true
    end
end

Script editado para comprobar el número de argumentos, y corregir un error en el Archivo.cambiar el nombre de

Editado de nuevo a ignorar caso. Es decir, no mueva la Barra.si png bar.jpg ya existe.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X