![]() |
Grep y replace Hola, Estoy intentando hacer un script que me busque en una carpeta los archivos que contenga una cadena y me la sustituya por otra. Yo tengo esto: Código: grep -r \'cadenaBusca\' /micarpeta/* | replace \'cadenaBusca\' \'nuevaCadena\'¿Alguna idea? Gracias por la ayuda. |
Segun dice el manual de man, cito textualmente: Cita:
Intenta lo siguiente (haz un backup antes, por si acaso ;) Código: cd micarpeta(man replace) |
Ya, el man del REPLACE lo he mirado, pero no lo veo muy claro. He conseguido algo: Código: replace cadenaBusca cadenaNueva -- `find /ruta/a/carpeta/* -name "*.php"`Y eso que find SI hace busqueda recursiva. ¿Alguna idea? Gracias por la ayuda. |
Código: replace cadenaBusca cadenaNueva -- `find /ruta/a/carpeta/ | grep -i "\.php$"` |
¿Y por qué no usas sed? Es bastante más simple: Código: sed -i s/cadenaBusca/cadenaNueva/g /ruta/a/archivos/ |
Puedes explicarme algo mas sobre el comando sed. Hice man sed y la verdad no entiendo muy bien para que sirve. Gracias por la ayuda. |
En pocas palabras: El parámetro "-i" le indica a Sed que realice los cambios en el mismmo archivo en lugar de dirigirlos a stdout. "s/cadenaBusca/cadenaNueva/g" reemplaza ("s") cualquier ocurrencia de "cadenaBusca" por "cadenaNueva". La "g" es para que reemplace TODAS las ocurrencias; de lo contrario, sólo reemplazará la primera ocurrencia. |
Muchas gracias ociomax, lo probare y te cuento. |
| La zona horaria es GMT -6. Ahora son las 07:13. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.