GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo reemplazar una cadena con una cadena que contiene una barra oblicua con Sed?

Estoy buscando una forma de reemplazar una cadena en un archivo con una cadena que contiene una barra inclinada usando sed.

connect="192.168.100.61/foo"
srcText="foo.bar=XPLACEHOLDERX"
echo $srcText | sed "s/XPLACEHOLDERX/$connect"

El resultado es:

sed: -e Expression #1, Character 32: Unknown option for `s'

Respuesta aceptada:

Use otro carácter como delimitador en los s comando:

printf '%sn' "$srcText" | sed "s|XPLACEHOLDERX|$connect|"

O escape de las barras con ${var//pattern/replacement} de ksh93 operador de expansión de parámetros (ahora también soportado por zsh , bash , mksh , yash y versiones recientes de busybox sh ).

printf '%sn' "$srcText" | sed "s/XPLACEHOLDERX/${connect////\/}/"

Linux
  1. ¿Cómo se reemplaza el texto similar a sed con python?

  2. Encuentra todos los archivos con un nombre que contenga una cadena

  3. Comando tr:cómo reemplazar la cadena \n con una nueva línea real (\n)

  4. ¿Cómo reemplazo las comillas simples con otro carácter en sed?

  5. Usando sed para dividir una cadena con un delimitador

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

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

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

Reemplazar una palabra con otra en bash

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

¿Cómo usar sed para reemplazar la variable de un archivo de configuración?