dimanche 11 mars 2012

Shell Geek: Renombrar archivos múltiples a la vez

Digamos que usted tiene un directorio con cientos de archivos con los nombres de los archivos equivocados, y que le gustaría reemplazar a cada nombre de fichero que contiene test with prod. (Este es un ejemplo inventado). Es fácil hacer esto con el "para" comandos en bash, combinado con un poco de la bondad de bash. Hoy vamos a aprender a reemplazar texto en una variable en un bucle for.

El "de" mando funciona así:

para var en ;do $var;done

Puede sustituir con cualquier patrón de comparación de archivos, tales como * o *. txt, y usted puede reemplazar con cualquier comando de linux. El comando se ejecutará de forma secuencial en cada uno de los archivos encontrados por el patrón de comparación de archivos.

Aquí es donde el manejo variable de fiesta lo hace aún más interesante. En lugar de simplemente hacer algo como "mv $ var", que puede reemplazar el texto en el nombre del archivo mediante la siguiente sintaxis:

$ {Var / originaltext / replaceText}

Así que ahora, si se ejecuta este comando en nuestro directorio:

for f in *; do mv $ f $ {f / prueba / prod}; hacer

Para cada archivo acompañado por *, bash se ejecuta un comando similar al siguiente:

mv test.config prod.config

He encontrado que el conocimiento de la cáscara es muy valiosa en la administración de servidores, o simplemente para gestionar tu colección de archivos, y me ha ahorrado horas de lo que hubiera sido de otra manera el trabajo manual.

Y sí, me doy cuenta de que hay una serie de herramientas que puede lograr el cambio de nombre de varios archivos.

Aucun commentaire:

Enregistrer un commentaire