GNU/Linux >> Tutoriales Linux >  >> Linux

Barra oblicua y barra invertida en Sed?

Esta pregunta ya tiene respuestas aquí :¿De qué caracteres necesito escapar cuando uso sed en un script sh?

(4 respuestas)
Cerrado hace 5 años.

Quiero usar sed para cambiar una barra inclinada a una barra invertida y una barra inclinada, es decir, / -> / . Pero no funciona. Aquí un pequeño ejemplo:

#!/bin/bash
TEST=/etc/hallo
echo $TEST
echo $TEST | sed "s/hallo/bello/g"
echo $TEST | sed "s///\//g"

La salida de las primeras tres líneas es la supuesta. Pero el último no funciona. ¿Por qué? ¿Cómo corregir la última parte?

Respuesta aceptada:

Utilice comillas simples para la expresión que utilizó:

sed 's///\//g'

Entre comillas dobles, tiene un significado especial, por lo que debe hacer una barra invertida:

sed "s///\\//g"

Pero es más limpio cambiar el delimitador:

sed 's=/=\/=g'
sed "s=/=\/=g"

Linux
  1. ¿Cuál es la diferencia entre $(cosas) y `cosas`?

  2. ${!foo} ¿Y Zsh?

  3. ¿Script de shell con función y parámetro como variables?

  4. ¿Codificar el contenido del archivo y repetirlo como una sola línea?

  5. Buscar y reemplazar en secuencias de comandos de shell

Manipulación de texto con sed y grep

16 Ejemplos Prácticos y Útiles del Comando Echo en Linux

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

Buscar y reemplazar con sed en directorios y subdirectorios

Eco para stdout y stderr

sed con cadena literal, no archivo de entrada