"Si tú no trabajas por tus sueños, alguien te contratará para que trabajes por los suyos”

Steve Jobs

Afiliado
Dominios3Euros

SINOPSIS COMANDO RENAME:

rename [ -v ] [ -n ] [ -f ] perlexpr [ files ]

DESCRIPCIÓN COMANDO RENAME:

"rename" cambia el nombre de los nombres de archivo suministrados de acuerdo a la regla especificada como primer argumento . El argumento perlexpr es una expresión Perl para modificar al menos algunos de los nombres de archivo especificados. Si un nombre de archivo que se da no se modifica por la expresión , no va a cambiar el nombre . Si no se dan los nombres de archivo en la línea de comandos , los nombres de archivos se pueden leer a través de la entrada estándar .

Expresiones regulares que podemos utilizar en este comando:

Expresiones regulares:

Expresiones regulares que pueden ser utilizadas en rename.

^
coincide con el principio de la línea
$
coincide con el final de la linea
.
Coincide con cualquier carácter individual


(caracter)*
El caracter anterior tantas veces que quiera.
(caracter)?
Coincide con 0 o 1 vez el caracter
[abcdef]
Coincidir con cualquier carácter incluido en [] (en este caso, a b c d e  f) se permiten rangos de caracteres como [a-z].
[^abcdef]
No coincidad cualquier carácter incluido en [] ( en este caso a b c d e f).
(character)\{m,n\}
Match m-n repetitions of (character)
(character)\{m,\}
Match m or more repetitions of (character)
(character)\{,n\}
Match n or less (possibly 0) repetitions of (character)
(character)\{n\}
Match exactly n repetitions of (character)
\(expression\)
Group operator.
\n
Backreference – matches nth group
expression1\|expression2
Matches expression1 or expression 2. Works with GNU sed, but this feature might not work with other forms of sed.
\w
matches any single character classified as a “word” character (alphanumeric or “_”)
\W
matches any non-“word” character
\s
matches any whitespace character (space, tab, newline)
\S
matches any non-whitespace character
\d
coincide con cualquier carácter de dígito, equiv. a [0-9]
\D
coincide con cualquier carácter que no sea un dígito

ALGUNOS EJEMPLOS DE COMANDO RENAME

Tratar extensiones:

Por ejemplo, para cambiar los ficheros que tengan la extension en mayuscula (JPG)  por minuscula (jpg).

rename -n 's/JPG$/jpg/' *

Con la opción -n , nos muestra lo que va hacer pero no lo realizar. Si quiere cambiarlo de verdad, simplemente repite la instrucción sin la -n.

Explicacion de expresion regular.

-n        :  Hace que no realice la acción, muestre por pantalla lo que haría.
s         : sustituye
/          :donde encuentres
JPG$   :JPG al final del fichero
/          : indica que sustituya por
jpg       : los pondría en vez JPG
/ fin     : indica el fin de expresion.

Tratar prefijos:

La intención es cambiar el nombre de varios ficheros que poniendo un PREFIJO y manteniendo  la misma datos.

Imaginamos que tenemos un directorio donde tenemos varias imagenes con el mismo prefijo y con un numero, situación típica cuando importamos imágenes de un dispositivo, como muestro en la siguiente imagen

directorio-imagenes

Pues para cambiar esta galeria de imagenes el nombre y poner el nombre del evento que erá, utilizo la siguiente instrucción.

rename 's/\IMG/\InauguracionBar/' *

El resultado es InaufuracionBar_nnnn.JPG