Usando sed para reemplazar caracteres especiales


13

Esto funciona para reemplazar tomcon samun archivo:

sed 's/tom/sam/g' file_1 > file_2

Pero esto no:

sed 's/*****/sam/g' file_1 > file_2

Para reemplazar los caracteres especiales *****con la palabra sam. Lo he intentado con una barra \*pero errores.


2
¿Con qué comando probaste \*y cuáles fueron los errores que obtuviste?
Cuonglm

He intentado: sed 's / **** / sam / g' test.txt> test2.txt y da como resultado un error: sed: regex incorrecto '*****': expresión regular anterior no válida: esto tiene el blackslash \ before the *
Rosebud

1
Puedes intentar escapar de cada personaje especial:sed 's/\*\*\*\*\*/sam/g'
taliezin

Respuestas:


17

Debe escapar de los caracteres especiales con una barra diagonal inversa \delante del carácter especial, por ejemplo:

sed 's/\*/t/g' test.txt > test2.txt


0

Debe escapar de los caracteres especiales con una barra diagonal inversa \delante del carácter especial. Para su caso, escape de cada personaje especial con barra invertida \.

p.ej: **** boy is ****

sed 's/\*\*\*\*/sam/g' filename

ans:

sam boy is sam
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.