Bash tip: Renombrar masivamente (y III)
29.dic 2005
Envía un trackback
Hace algún tiempo explicaba un bash tip bastante interesante sobre como renombrar masivamente y con un solo comando fotografías, quitar espacios a los mp3...
En esta ocasión se presentaba algo más peliagudo a priori. Para poneros en situación imaginaos como administradores de un Bind9 con 500 dominios en su poder, no está mal ¿verdad?.
Ahora el problema, por circunstancias ajenas se decide cambiar de proveedor de Internet, con lo que la IP también varía. De un simple vistazo podemos decudir que en cada zona de dominio tenemos (al menos) dos entradas A con la ip que quedará desfasada.
Tenemos dos opciones, editar a mano todos y cada uno de esos archivos y rezar para no equivocarnos al escribir (o copiar&pegar) la nueva IP, o hacerlo como todo geek haría:
# for i in *.hosts; do cat $i | sed 's/111.111.111.111/222.222.222.222/' > $i.new ; rm $i; mv $i.new $i; doneAunque creo que se entiende a simple vista: Para todos los archivos *.hosts buscamos la IP 111.111.111 y la sustituimos por 222.222.222.222 en un archivo temporal .new. Después machacamos los originales.
¡Que la fuerza bash te acompañe!
Actualización: Repasando he encontado otra entrada donde explicaba exactamente lo mismo. Estoy mayor, lo sé :(.
Comentarios
Más simple:
sed -i -e 's-111\.111\.111\.111-222.222.222.222-g' *.hosts
:)
Saludos.Ferdy
Por este tipo de comentarios me encanta tener un blog :). Gracias Ferdy.
En Debian, si tienes instalado Perl, puedes utilizar rename para ello :-P
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]


