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.

Capullo de rosa
fuente
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

Karthik K
fuente
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
shareef babu
fuente