GNU/Linux >> Tutoriales Linux >  >> Linux

Uso de los comandos Sed, ex y perl para buscar y reemplazar un texto en Linux

Pregunta:  Me gustaría reemplazar un texto con un enlace en la etiqueta de anclaje de un archivo html. El desafío es que el proyecto contiene cientos de estos archivos HTML y reemplazar un texto en todos esos archivos manualmente no es una forma inteligente de hacerlo. Entonces la pregunta es, ¿cómo puedo hacer lo mismo usando un solo comando en Linux?

Solución:

Uso de sed comando en Linux:

sed -i 's/#\(.*logo\)/domain.ca\1/' $file

El comando anterior busca la línea que contiene el patrón logo y reemplaza "#" con un enlace (por ejemplo, un dominio.ca)

También puede pasar varios archivos para el comando anterior como se muestra a continuación.

Otra variación del comando anterior es:

sed -i '/logo.png/ s/#/domain.ca/' *.html

Uso de perl comando:

perl -i -pe 's/#/domain.ca/ if /logo.png/' about-us.html

El comando es muy sencillo:busque el texto y reemplácelo con cierta cadena si y solo si encuentra una cadena coincidente en esa línea del archivo.

Todos los comandos anteriores hacen el mismo trabajo, pero solo difieren en cómo ingresas tu expresión regular.

Usar Vim en ex modo (no se puede usar con varios archivos):

ex -sc '/logo/s/#/http:\/\/domain.ca\//|x' about-us.html

En el comando anterior, la expresión regular '/logo/s/#/http:\/\/domain.ca\//|x ' consta de 's' y 'x', donde 's' es para sustituir y 'x' es para guardar y cerrar el archivo.

Nota:el comando anterior usa vim , no puede pasar varios archivos. Debe ejecutar este comando manualmente para reemplazar todos y cada uno de los archivos.


Linux
  1. El comando Sed de Linux:uso y ejemplos

  2. Uso de sed para buscar y reemplazar archivos de texto en Linux

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

  4. busque y elimine archivos con espacio usando el comando de búsqueda en Linux

  5. Búsqueda recursiva y reemplazo en archivos de texto en Mac y Linux

Cómo usar sed para buscar y reemplazar cadenas en archivos

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

Encuentra texto en archivos en Linux usando grep

50 ejemplos simples y útiles del comando Buscar en Linux

Cómo encontrar y reemplazar texto en Vim

Tutorial de Unix Sed:busque y reemplace texto dentro de un archivo usando RegEx