Buscar y reemplazar texto dentro de múltiples archivos

Buscar y reemplazar texto dentro de múltiples archivos

Quiero saber cómo puedo buscar y reemplazar un texto específico en varios archivos como en Notepad++ en el tutorial vinculado.

p.ej:http://cybernetnews.com/find-replace-multiple-files/

Respuesta1

Aquí uso sed para reemplazar cada aparición de la palabra "cybernetnews" con "cybernet" en cada archivo con la extensión c, en el directorio /home/user/directory/.

find /home/user/directory -name \*.c -exec sed -i "s/cybernetnews/cybernet/g" {} \;

Una variación más genérica en la que busca recursivamente desde el directorio de ejecución y opera solo en archivos normales, legibles y grabables:

find ./ -type f -readable -writable -exec sed -i "s/cybernetnews/cybernet/g" {} \;

Respuesta2

El editor de secuencias, sed, es una potente utilidad para este tipo de trabajo y es mi primera opción; sin embargo, si desea hacer esto desde un editor de texto normal utilizando una aplicación nativa basada en Ubuntu, le sugiero que eche un vistazo a Jedit. , Está disponible en los repositorios y se puede instalar escribiendo en tu consola:

sudo apt-get install jedit

Inicie jedit, haga clic en el elemento del menú de búsqueda, en la lista del menú, haga clic en el elemento Buscar en el directorio, se le presentará el siguiente cuadro de diálogo:

Búsqueda Jedit en el cuadro de diálogo de carpeta

Esto es similar al de Notepad++ y hace lo mismo, creo que esto es lo que quieres.

Respuesta3

Otra opción de GUI esregexador: captura de pantalla regexxer

Respuesta4

Comprobar conGeany, es el reemplazo perfecto de NPP para Linux. Puedes hacer exactamente eso y además puedes usar expresiones regulares.

información relacionada