GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo buscar y reemplazar texto, palabra o cadena en un archivo

Si logra echar un vistazo más profundo al ecosistema del entorno del sistema operativo Linux, descubrirá que sus comandos incorporados son suficientes para resolver la mayoría de nuestros problemas informáticos.

Uno de esos problemas es la necesidad de buscar y reemplazar texto, palabra o cadena en un archivo, especialmente cuando se encuentra en un entorno de servidor. Una solución a este problema le permite manejar problemas molestos como actualizar el "/etc/apt/sources.list ” después de una actualización exitosa del sistema Linux.

Creación del archivo de texto de prueba en Linux

Cree un archivo de texto con un nombre como "test.txt ” y rellénelo con algún texto, palabra o cadena de caracteres. Deje que este archivo esté en la misma ruta que su instancia de terminal.

$ nano test.txt
OR
$ vi test.txt 

Usaremos el comando cat para anotar de manera flexible los cambios en nuestro archivo de prueba creado.

$ cat test.txt

Uso de Sed para buscar y reemplazar texto, palabra o cadena en un archivo

El poder de este editor de secuencias está en su facilidad para lograr la transformación básica de las secuencias de entrada. El comando sed ofrece un enfoque rápido, fácil y atemporal para encontrar y reemplazar texto, palabras o patrones de cadenas específicos en un archivo.

Encuentre y reemplace las primeras apariciones de texto, palabra o cadena en el archivo

Desde nuestro archivo de prueba creado, vamos a actualizar todas las instancias de la palabra “LinuxShellTips ” con la alternativa “este sitio ”. La sintaxis del comando sed que utilizaremos para realizar esta sencilla tarea es la siguiente:

$ sed -i 's/[THE_OLD_TERM]/[THE_NEW_TERM]/' [TARGETED_FILE] 

Con referencia al comando sed anterior uso y sintaxis, podemos reemplazar el archivo de prueba “LinuxShellTips ” término con “este sitio ” término de la siguiente manera:

$ sed -i 's/LinuxShellTips/this site/' test.txt

Ahora podemos usar el comando cat para obtener una vista previa de los cambios propuestos anteriormente en nuestro archivo de prueba para observar si se realizaron modificaciones sustanciales.

$ cat test.txt

Como puede ver, las dos primeras apariciones de la palabra “LinuxShellTips ” han sido reemplazadas por la frase “este sitio ”.

Buscar y reemplazar todas las apariciones de texto, palabra o cadena en el archivo

A pesar de que el comando anterior reemplazó todos los patrones de palabras objetivo en nuestro archivo de prueba, su uso tiende a ser selectivo en la mayoría de las circunstancias. El comando funciona mejor para archivos pequeños porque, en archivos grandes, solo las primeras apariciones de un patrón de palabra objetivo pueden beneficiarse de su función "buscar y reemplazar destreza.

Para buscar y reemplazar todas las apariciones de un patrón de palabra en cualquier archivo editable, debe seguir el siguiente comando sed sintaxis.

$ sed -i 's/[THE_OLD_TERM]/[THE_NEW_TERM]/g' [TARGETED_FILE]    

Como habrás notado, la 'g' en la sintaxis del comando buscar y reemplazar anterior actúa como una variable global para que se consideren todas las apariciones globales de un término en un archivo de destino.

$ sed -i 's/this site/LinuxShellTips/g' test.txt

El comando anterior encuentra todas las apariciones globales del término "este sitio ” y lo reemplaza con el término “LinuxShellTips ”.

Uso de Awk para buscar y reemplazar texto, palabra o cadena en un archivo

Si está familiarizado con la utilidad de línea de comandos awk, entonces sabe que sus poderosas métricas de lenguaje de secuencias de comandos lo convierten en un profesional en el procesamiento de texto. Los administradores de sistemas Linux y los usuarios profesionales consideran que esta herramienta es eficaz para la extracción y generación de informes de datos.

El comando awk La sintaxis para una operación simple de buscar y reemplazar se parece al siguiente fragmento:

$ awk '{gsub("[THE_OLD_TERM]","[THE_NEW_TERM]"); print}' [TARGETED_FILE]

En la sintaxis anterior, awk sustituirá a THE_OLD_TERM de THE_NEW_TERM en el TARGETED_FILE e imprima el contenido del archivo resultante en la terminal del sistema.

Adoptemos un enfoque práctico:

$ awk '{gsub("Linux","ubuntu"); print}' test.txt

Con las funcionalidades dinámicas de ambos sed y awk herramientas de comando, ahora debe buscar, reemplazar y sobrescribir patrones de texto, palabras o cadenas en un archivo de destino. Estas herramientas brindan al usuario del sistema la flexibilidad necesaria mientras se encuentra en una interfaz de línea de comandos.


Linux
  1. Cómo usar expresiones Awk y regulares para filtrar texto o cadenas en archivos

  2. ¿Cómo reemplazar una cadena en un archivo (s)?

  3. ¿Cómo encontrar corchetes no coincidentes en un archivo de texto?

  4. ¿Cómo encontrar el tipo de archivo Img y montarlo?

  5. Usando grep y sed para encontrar y reemplazar una cadena

Cómo comparar y fusionar archivos de texto en Linux

Cómo encontrar una cadena en un archivo en Linux

Cómo usar el comando SED para buscar y reemplazar cadenas en archivos

Cómo encontrar archivos que contengan una cadena de texto específica en Linux

Cómo encontrar y reemplazar texto en Vim

Cómo usar Sed para buscar y reemplazar una cadena en un archivo