LinuxParty
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.

-
Negocios
- Lenovo podría estar evitando el 'impuesto Windows' al ofrecer portátiles más económicos con Linux preinstalado
- Los estadounidenses de la generación Z no tienen ahorrado lo suficiente para cubrir un solo mes de gastos
- ¿Ha comenzado el declive de los empleos de los trabajadores del conocimiento?
- Un hombre que perdió su fortuna en bitcoins en un vertedero galés estudia comprar todo el vertedero
- DeepSeek ha gastado más de 500 millones de dólares en chips Nvidia a pesar de las afirmaciones de inteligencia artificial de bajo costo, según SemiAnalysis
- JPMorgan Chase exige que todos los trabajadores regresen a la oficina cinco días a la semana
- Un estudio revela los trabajos más satisfactorios: el trabajo por cuenta propia, el trabajo de funcionario, la gestión y el servicio social
- Los conductores Autómos de Uber y Lyft pueden sindicalizarse, dicen los votantes de Massachusetts
- El gran problema de los mandatos de regreso a la oficina es su cumplimiento
- Los graduados de la Generación Z están siendo despedidos meses después de ser contratados
- Recuperando la concentración con Focus Blocks: Una guía técnica para usuarios de Linux
- La propuesta de una semana laboral de cuatro días del gobierno británico plantea problemas, afirma un profesor de economía
- Best Buy está despidiendo a más empleados debido a la caída de las ventas
- No es un 'abandono silencioso' de los teletrabajadores, solo intentan 'vacaciones silenciosas'
- ¿Podrían las IA reemplazar a los directores ejecutivos?