Borrar línea de ficheros masiva y recursivamente
Hace pocos días, me hicieron una consulta relacionada con un ataque a una web, el resultado fue encontrarme con miles de archivos de la web modificados que contenían una línea con código Javascript ofuscado, que contenía un enlace a una web ucraniana.
Para modificar todo este código, a mano sería imposible modificar tantos ficheros, aunque sólo sea una línea en cada uno.
Para hacerlo, basta con hacer un script en linux que busca coincidencias en todos los ficheros recursivamente y borra la línea con dicha coincidencia.
Este script nos valdrá para arreglar cualquier directorio de ficheros en los que deseemos borrar un determinado código con un mismo patrón.
for f in *.txt; do sed '/texto a buscar/d' "$f"; done find -name '*.txt' -exec sed '/texto a buscar/d' "{}" ';'
El for recorrerá todos los ficheros de formato .txt (podremos cambiarlo por el que deseemos) y borrará las líneas con la coincidencia de la cadela «texto a buscar«.