GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Use el comando SED para buscar y reemplazar cadenas en archivos:¿cómo realizar esta tarea en Ubuntu?

El sed significa editor de secuencias. Lee el archivo dado, modificando la entrada según lo especificado por una lista de comandos sed.

De forma predeterminada, la entrada se escribe en la pantalla, pero puede forzar la actualización del archivo.

El comando Sed (Stream EDItor) de Linux se usa para buscar, encontrar y reemplazar, o insertar y eliminar palabras y líneas en un archivo de texto.

El caso de uso más común del comando Sed es buscar y reemplazar cadenas en archivos. Al usar el comando Sed, puede editar archivos sin abrirlos.

Aquí en LinuxAPT, como parte de nuestros Servicios de Administración de Servidores, ayudamos regularmente a nuestros Clientes a realizar consultas relacionadas con Servidores Linux.

En este contexto, veremos cómo usar el comando Sed para buscar y reemplazar cadenas en archivos en el sistema Ubuntu 20.04.


Buscar y reemplazar en Ubuntu

De forma predeterminada, Sed está instalado en la mayoría de las distribuciones de Linux. Puede verificar la instalación de Sed en su sistema Linux ejecutando:

$ sed --v

La sintaxis básica del uso del comando Sed para buscar y reemplazar texto es:

$ sed -i 's/Search_pattern/Replacement_pattern/g' FILE

donde:

-i:esta opción hace que el comando Sed edite los archivos en lugar de escribir la salida en la salida estándar.

s:Significa sustituto.

//:Caracteres delimitadores.

g:Es una bandera de reemplazo global.

ARCHIVO:El archivo que desea manipular con el comando Sed.


Se recomienda poner el patrón de búsqueda, el patrón de reemplazo y otros argumentos entre comillas.

Por ejemplo, aquí hay un archivo de texto que se usó para la demostración:

567 Test test test
test /bin/zsh linuxapt.com testbar 789

Para reemplazar todas las palabras de 'prueba' con palabras de 'linux', ejecute el siguiente comando:

$ sed -i 's/test/linux/g' test.txt

Si no usa el indicador g, solo se reemplaza la primera aparición del patrón de búsqueda en cada línea:

$ sed -i 's/test/linux/' test.txt

Para hacer que el patrón de búsqueda no distinga entre mayúsculas y minúsculas, usemos el indicador I:

$ sed -i 's/test/linux/gI' test.txt

En el mundo de Linux, encontraremos muchos casos de uso que tienen caracteres delimitadores en archivos de texto.

Tenemos que usar la barra invertida \ para dividir los caracteres delimitadores.

Por ejemplo, para reemplazar /bin/zsh con /usr/bin/bash, ejecute:

$ sed -i 's/\/bin\/zsh/\/usr\/bin\/bash/g' test.txt


Buscar y reemplazar recursivamente

En muchos casos, desea buscar directorios recursivamente para archivos que tengan una cadena específica y reemplazar esa cadena en todos los archivos.

Por ejemplo, el siguiente comando buscará y reemplazará la cadena 'apt' con 'road' en todos los archivos del directorio actual.

$ find . -type f -exec sed -i 's/apt/road/g' {} +

Si los nombres de archivo contienen caracteres de espacio, usemos la opción -print0:

$ find . -type f -print0 | xargs -0 sed -i 's/way/road/g'

Para buscar y reemplazar una cadena solo en archivos que tienen una extensión específica, ejecute:

$ find . -type f -name "*.java" -print0 | xargs -0 sed -i 's/apt/road/g'



Ubuntu
  1. Cómo usar el comando de apagado de Linux en Ubuntu 18.04 y CentOS 7

  2. Agregar y eliminar usuarios en Ubuntu 20.04:¿cómo realizar esta tarea?

  3. Listar paquetes instalados en Ubuntu 20.04 - ¿Cómo realizar esta tarea?

  4. ¿Cómo usar Sed para reemplazar una cadena de varias líneas?

  5. Cómo reemplazar una cadena en varios archivos en la línea de comando de Linux

Cómo encontrar archivos en la línea de comandos de Ubuntu

Cómo instalar y usar PhotoRec para recuperar archivos borrados en Ubuntu 20.04

Cómo encontrar y eliminar archivos duplicados en Ubuntu usando Fdupes

Cómo instalar y usar R en Ubuntu

Cómo instalar y usar el comando Exa en Ubuntu 20.04

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