GNU/Linux >> Tutoriales Linux >  >> Linux

¿Usar Sed para reemplazar una cadena con una que contenga un nombre de directorio (es decir, una barra inclinada "/")?

Sé que esto se ha preguntado antes, pero tengo problemas para entender las respuestas que he encontrado. Básicamente quiero usar

sed -i 's/string//some/directory/g' file.txt

y no puedo encontrar una respuesta directa sobre cómo hacer /some/directory no romper el sed sintaxis.

Respuesta aceptada:

sed permite varios delimitadores de sintaxis, / siendo solo el más utilizado.

También puedes decir

sed -i 's,<string>,<some/directory>,g' file.txt

donde el , ahora tiene la función que normalmente realiza el / , liberando así a este último de su especial significado.

Tenga en cuenta, sin embargo (como lo señaló @Jeff Schaller), que ahora el , no debe aparecer en el nombre del archivo o directorio, y ¡es un carácter válido para los nombres de archivo! Esta respuesta brinda una buena descripción general sobre cómo proceder al aplicar sed a una cadena con caracteres especiales.


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

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

  3. Linux:¿la barra inclinada (/) forma parte del nombre del directorio raíz de Linux?

  4. Buscar y reemplazar con sed en directorios y subdirectorios

  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

Los 20 mejores comandos sed para usar

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

Encuentra todos los archivos con un nombre que contenga una cadena

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