Inicio InformáticaGnu/LinuxCómo buscar y reemplazar texto en varios archivos PHP desde la terminal

Cómo buscar y reemplazar texto en varios archivos PHP desde la terminal

Publicado por entreunosyceros
Publicado el: Última actualización:

AVISO: Esta entrada tiene más de dos años desde su publicación. Es posible que el contenido esté desactualizado.

Hoy he tenido que buscar una ruta relativa en varios archivos php, y la verdad es que eran unos cuantos archivos. Por eso me acordé de algo así de una clase que me dio un buen profesor en clase de Sistemas Informáticos, era algo relativo a buscar y reemplazar texto dentro de varios archivos al mismo tiempo desde la terminal. Por este motivo he «buscado» un poco para refrescarme la memoria.

Además de para solucionar el problema de direcciones relativas que se me planteó en relación a unas direcciones relativas, la solución «a mi problema» también es una estupenda salida cuando existe vulneraciones a un sitio por inyección de código. Estos ataques inyectan una cadena de código maliciosa en todos o varios archivos PHP del sitio atacado. Cuando esto ocurre, existen varias maneras de reaccionar ante ello.

Una manera de solventar este problema, es editando a mano uno a uno los archivos. Buscar y reemplazar la cadena maliciosa, ya sea restaurando una copia de seguridad de los archivos del sitio o bien tomando el trabajo de entrar y editar uno a uno los PHP infectados.

A pesar de que existen programas con un entorno gráfico para realizar esta misma tarea, uno que es un romántico de la terminal buscó y encontró un comando (conocido por muchos). Utilizando GREP  y xargs sed podemos hacer búsqueda y reemplazo de las cadenas de texto que queramos, de esa manera reparamos o arreglamos el problema sobre todos los archivos.php que encontremos. Lo de los archivos php es una opción personal, funciona con todo tipo de archivos.

Buscar y reemplazar texto dentro de archivos php, utilizando la terminal y grep

grep -lr 'Texto_a_Eliminar' *.php|xargs sed -i 's/Texto_a_eliminar/Texto_a_insertar/g'

Aclarar que habrá que situarse previamente en el directorio sobre el que queramos actuar. Es importante aclarar que el comando así tal cual lo presento aquí no va a realizar ninguna acción sobre el contenido  de ningún subdirectorio que en el se encuentre (ni tampoco sobre su contenido). Creo que eso se puede hacer, pero para el que quiera saber cómo, lo invito a echar un vistazo a la ayuda de esta comando.

En caso de querer saber hacer más cosas con este fantástico comando se puede visitar la siguiente dirección.

También te puede interesar ...

Deja un comentario

* Al utilizar este formulario, aceptas que este sitio web almacene y maneje tus datos.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

2 Comentarios

Insulino 3 noviembre, 2016 - 8:16 PM

Es justo lo que necesitaba. Me ha venido genial el apunte. Gracias

Respuesta
sapoclay 4 noviembre, 2016 - 1:52 PM

Gracias por la visita.

Respuesta
Resumen de privacidad
cookies entreunosyceros

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible.

La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudarnos a comprender qué secciones de la web encuentras más interesantes y útiles.

Nunca almacenamos información personal de ningún tipo.

Tienes toda la información sobre privacidad, derechos legales y cookies en nuestra página sobre la política de privacidad o en la página sobre nuestra política de cookies.

Cookies necesarias

Las cookies estrictamente necesarias tiene que activarse siempre para que podamos guardar tus preferencias de ajustes de cookies.

Cookies de terceros

Esta web utiliza las siguientes cookies adicionales:

- Mailchimp: Recordar si ya estás suscrito al boletín de noticias y sino ofrecértelo al salir.

- Accesibilidad: Para saber tus ajustes de accesibilidad en cada visita.

- Comentarios: Saber si has leído y aceptado nuestra política de privacidad a la hora de dejar un comentario en la web.

- Google Analytics: Localización para recopilar información anónima tal como el número de visitantes del sitio, o las páginas más populares.

- Goggle Adsense: Anuncios personalizados según tu geolocalización y preferencias.

Dejar estas cookies activadas nos permite mejorar nuestra web.

Adblock Detectado!!

Ayúdanos deshabilitando la extensión AdBlocker de tu navegador para visitar esta web.
Si no sabes hacerlo en Chrome, consulta el siguiente enlace. Si utilizas Firefox, puedes consultar este otro enlace.
Esto mejorará tu experiencia en este sitio web.