* Imagenes de instalación de las versiones estables para Mageia y OpenMandriva.

OpenMandriva: Mageia (Mageia 9) 20/Agosto/2023 - Anuncio, Descargas.

Blogdrake recomienda descargar las imágenes de instalación (iso) vía torrent para evitar corrupción de datos, aprovechar mejor su ancho de banda y mejorar la difusión de las distribuciones.

¿Como reemplazo cadenas de texto con sed?

Hola, tengo un servidor al que voy a cambiarle una contraseña. Al hacerlo, todos los ficheros de configuración de las páginas creadas en él empezarán a fallar: prestashops, joomlas, etc.

Para ello, quiero usar el comando sed para reemplazar.

sed 's/cadena1/cadena2' fichero

El problema que me encuentro son varios:

1.- Los ficheros tienen todos el mismo nombre y están ubicados en directorios distintos, supongo que tendré que hacer un find con un -exec.

2.- El comando sed no sé como decirle que la salida del comando la vuelque en un fichero del mismo nombre origne que toma. sed no sabe (o al menos yo) volcar la salida sobre el mismo fichero que lee.

Si me echais una mano os lo agradecería.

Saludos

Opciones de visualización de comentarios

Seleccione la forma que desee de mostrar los comentarios y haga clic en «Guardar opciones» para activar los cambios.


Gravatar de jacen

# 107933 Archivo temporal

Sed arroja el resultado a la "salida estándar", que sería la pantalla. Lo que se estila es redirigir la salida a un archivo temporal, por ejemplo "config.txt.tmp" y posteriormente renombrar ese archivo a "config.txt".

Te recuerdo que hagas un respaldo de los archivos de configuración antes de tocar nada.

Salu2!

Jacen
BOFH y miembro del equipo MDKtrans
Linux user #294897



Gravatar de gejo

# 107945 Emm... Lo que te comento a

Emm... Lo que te comento a continuación no sé si funcionaría pero allá va:

find sustituye '{}' por el nombre del fichero por lo que puedes probar con esto:

find ./ -name *.txt -exec sed 's/cad1/cad2/g' {} > {}.1 \;

Esto teóricamente debería servir pero como el comento que he puesto al principio, no lo he probado nunca y no sé los efectos que puede llegar a tener.

Otra cosa sería hacerse un script en bash que primero busque los archivos, los meta en un fichero temporal a modo de listado y luego lo recorra línea a línea haciendo con cada línea lo que quieras usando para ello variables y otras cosas más.

Un saludo.



Gravatar de jcbaena

# 108101 opcion -i

No ibas desencaminado gejo. La opción -i modifica el fichero existente sin sacar salida por pantalla.

La orden sería.

find . -name nombredelficheroacambiar -exec sed -i 's/cadenaabuscar/cadenanueva/g' {} \;

el /g es por si hubiera más de una ocurrencia. Si se omite solo se cambiara el primer caso que encuentre en cada fichero.

Gracias. se puede cerrar el hilo

Usuario linux #496861

Opciones de visualización de comentarios

Seleccione la forma que desee de mostrar los comentarios y haga clic en «Guardar opciones» para activar los cambios.