¿Aburrimiento o flexibilidad? ;)
Post para programadores
Resulta que en una de las listas internas de mi trabajo escribió un compañero diciendo que un cliente ha tenido mala suerte … MUY mala suerte. Su aplicación le ha creado 80000 (ochenta MIL) ficheros con el nombre equivocado.

Resulta que el nombre del fichero debía empezar por:
“00664471_<más_números>”
pero el soft ha nombrado los ficheros empezando por:
“ 0066_<más_números>”
Fijaos que el comienzo del nombre de ficheros son 5 espacios en blanco
Pues el compi pidió ayuda internamente por si alguien le puede echar una mano con un script para renombrar esos 80000 ficheros …
Como es de esperar en cualquier lista en la que hay más de 1 linuxero … le han llovido infinidad de respuestas: scripts con bash, csh, perl, … Entonces me he preguntado si es que nos aburrimos mucho o es que la flexibilidad que dan los sistemas abiertos dan tanto juego que te encuentras que la única limitación es tu imaginación … o las dos cosas
Obviamente, no soy el primero en pensar esto/preguntarme esto
Os voy a poner unos cuantos ejemplos de las respuestas que ha recibido el compi:
CSH:
#!/bin/csh -f
foreach f ( 006* )
foreach? set newname=`echo “$f” | sed ‘s/ 006/00664471/’`
foreach? mv “$f” $newname
foreach? end
¿Alguien usa csh por ahí?
BASH
#!/bin/sh
for file in *.dpx;
do
F1=`echo $file | awk -F”_” ‘{print $1}’`
F2=`echo $file | awk -F”_” ‘{print $2}’`
F3=`echo $file | awk -F”_” ‘{print $3}’`
OLDFILE=”$F1″_”$F2″_”$F3″
NEWFILE=”$F1″”64471″_”$F2″_”$F3″
mv $OLDFILE $NEWFILE
done
Comando “rename“:
rename “00664471_” “ 006_” *.dpx
Comando “find“:
find ./ -type f -name “ 006_*.dpx” -print0 | xargs -0 -i rename “ 006_” “00664471_” {}
Más BASH:
for F in 006*.dpx ; do mv “$F” “00664471${F# 006}”; done
Otro BASH:
find . -name ‘*006_005*.dpx’ -print0 | xargs -0 -n 1 rename
The script rename is as simple :
cat <<!! >rename
#!/bin/sh
mv “$1″ $1
!!
Como siempre, unas preguntas:
Esto me recuerda, en una lista de Linux (no recuerdo cuál ya que fue hace muuuuuuuchos años) alguien preguntó algo similar y una de las respuestas fue:
gcc
Para gustos … los sistema abiertos
Palabras Clave:
- sh-dpx
Archivado en: Sin categoría









Dejar un comentario