LinuxParty
NUESTRO SITIO necesita la publicidad para costear hosting y el dominio. Por favor considera deshabilitar tu AdBlock en nuestro sitio. También puedes hacernos una donación entrando en linuxparty.es, en la columna de la derecha.
Resulta que tengo que cambiar el contenido de muchos ficheros a la vez, resulta que en una función de desarrollo se llama getFuncion y ahora debe llamarse getFunction, buscar y cambiar el contenido de todos esos ficheros uno a uno, llevaría muchísimo tiempo, pero cambiar el contenido de todos esos ficheros a la vez es factible simplemente escribiendo:
find /etc -type f -exec sed -i "s/'getFuncion'/'getFunction'/g" {} \;
Puedes comprobar que se han hecho los cambios (o probar los cambios que vas a hacer, escribiendo...)
grep -r "getFuncion" *
Pero también, puedes utilizarlo para resolver problemas de configuración y cambiar varios ficheros a la vez, pongamos también este ejemplo:
Me ha ocurrido que tengo que cambiar la IP de todos los ficheros de configuración del directorio /etc, así pues he decidido compartir este comando para que sepáis como hacerlo.
find /etc -type f -exec sed -i "s/'237.742.45.9'/'192.168.1.2'/g" {} \;
Así de fácil…
Si quieres probarlo, crea en varios ficheros de texto plano, llamados "uno.txt", "dos.txt", etc... algunos textos y cambialos, por ejemplo:
La línea general como funciona es: Cambiar en todos los ficheros del directorio /etc con extensión ".txt", el texto "Pepito" por el texto "José".
find $HOME -iname *.txt -exec sed -i "s/'Pepito'/'José'/g" {} \;
Luego, probamos que se han hecho los cambios:
grep -r "José" *
Te recordamos que puedes cambiar la variable $HOME por ~, así, por ejemplo es lo mismo escribir $HOME/Documentos que ~/Documentos.
COMO FORZAR LOS CAMBIOS, CUANDO LA PARTE DE ARRIBA NO FUNCIONA.
Si por alguna razón, el comando de arriba no funcionase, también se pueden dar estos siguientes pasos, en los que además se tiene más control del proceso.
1º Buscar los cambios a hacer:
grep -r "Pepito" (o grep -ir "pepito" Para no hacer diferencia entre mayúsculas y minúsculas.) *.tx
Por ejemplo, los ficheros uno.txt y dos.txt están en los directorios 1a y 1b, respectivamente si quisiéramos cambiar el contenido de todos ellos, "hola" por "adiós" con un script que controle el proceso (que es recomendable) podríamos hacer lo siguiente
Contenido del scrpt:
grep -ir "hola" * | awk '{print $1}' | sed s/':'/' '/g | awk '{print "sed -i \"s%hola%adiós%g\"", $1}' > acambiar.sh
Tras la ejecución, el script "acambiar.sh" tendrá el siguiente contenido:
sed -i "s%hola%adiós%g" 1a/uno.txt sed -i "s%hola%adiós%g" 1b/dos.txt
Luego al script le daremos permisos de ejecución.
chmod a+x acambiar.sh # Ejecutamos el script ./acambiar.sh
Y se cambia lo que quisiéramos.

-
Documentación
- Descubren nuevo fósil de hace 8.7 millones de años en Turquía que desafía la historia sobre el origen de la humanidad
- Los arqueólogos descubren una lengua secreta perdida de hace 3.000 años
- La Queja Más Antigua del Mundo: La Historia Detrás de una Antigua Carta de Cliente Insatisfecho
- ‘Fósil viviente’: de la era de los dinosaurios, el árbol que sobrevivió a la gran extinción.
- Descubre los Tesoros del Arte Rupestre Prehistórico en Extremadura en el Día Europeo del Arte Rupestre
- Las Pinturas Rupestres de Egipto: Un Viaje a Través de los Milenios en la Tierra de los Faraones
- Medio Millón de años antes de tiempo? La Cascada de Kalambo Revela Asombrosas Habilidades en construcciones de madera
- El tesoro ancestral de Ba'ja: Un enigmático antiguo collar que podría reescribir la historia del neolítico
- No, los vikingos NO descubrieron América
- Por qué las universidades deberían volver a los exámenes orales en la era de la IA y ChatGPT
- Si perdemos el archivo de Internet, estamos jodidos
- Principales distribuciones de Linux para estudiantes en 2023
- Explora y visita el Coliseo romano con estos recorridos 360
- Cáceres: La importancia de su cueva paleolítica (La cueva de Maltravieso)
- Como vivía la gente en la noche de hace 500 años.