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.

lotes

  • Cambiar el contenido de varios ficheros a la vez

    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:

  • Cambiar el contenido interno de muchos ficheros a la vez, con sólo un comando, en Linux

    [Actualización 2022-04-11 - 10:00 ]

    Cambiar el contenido de muchos archivos a la vez puede ser una operación tediosa en algunos sistemas operativos, no sé... se me ocurre Windows por ejemplo. Pero en Linux y sus primos hermanos, es algo sencillo, siempre que sepas como hacerlo y desde estas línesa te queremos enseñar a hacerlo.

    Muy util para cambiar por ejemplo una IP dentro de un montón de archivos de configuración, o para los programadores, cambiar el nombre de una función en un programa que tenga centenares de líneas de código con multitud de ficheros, por ejemplo. O para cambiar el nombre de algo mal escrito para un editor, incluso teniendo para cambiar valores en sentencias SQL pasadas a texto plano.

    Para este ejemplo... 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 $HOME/Desarrollo/MiPrograma -type f -exec sed -i s/'getFuncion'/'getFunction'/g {} \;

    La sentencia de arriba busca en la ruta indicada ficheros y ejecuta y cambiara su contenido de entre de todos ellos cuando se encuentra lo que se busca, aquí establecido en color rojo a través de la sentencia "sed".

    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: