Reemplazo múltiple
31.ene 2005
Envía un trackback
Dada una estructura de directorios X con un número variable de archivos Y, donde Y no es inferior a 300, ¿cambiarías manualmente una cadena 'cadena' por 'cadena2' en cada uno de los Y archivos?, ¿te volverías loco en tal hazaña?. Ambas preguntas tienen respuesta evidente:
$ cd X/ $ for f in `grep -r cadena * | cut -f 1 -d : | uniq`; do cat $f | sed s/cadena/cadena2/g > /tmp/temporal.temp && mv -f /tmp/temporal.temp $f; done $Recuérdalo pequeño saltamontes, te ahorrará muchas horas de trabajo ;).
Comentarios
man rename :-P
justo lo que yo pensaba, se lo estaba comentando a flexo antes via msn :)
¿Esto no machaca el propietario y los permisos originales de los archivos?
No he probado ese for todavía (últimamente ando con Windows) pero me guardo el truco. Yo hacía algo parecido para renombrar extensiones. Era la época del modem y de descargar los discos de música con extensiones ".pdf" / similares en algún servidorcillo web gratuito, con lo que para cambiar la extensión de pdf a mp3 hacía un... (espera que mire en el cuadernillo de las viejas chuletas)
rename .pdf .mp3 *.pdf
..en fin, lo dicho por roberto; va a ser mejor mirarse las man de rename jejeje
Un saludo
Escribe tu comentario
Intenta que tu comentario sea interesante y con información relevante al tema de la entrada. BBCodes disponibles:
[url=http://direccion]texto[/url], negrita: [b]texto[/b],
itálica: [i]texto[/i], subrayada: [u]texto[/u].
Para mencionar o citar a alguien (quote): [cita]texto[/cita]


