como substituir palavra exata usando sed que começa com caractere especial "

0

Eu preciso substituir uma palavra "/ hotel para" / Tay

Eu usei vários delimitadores como? $ mas eu não consegui

    
por kartheek 17.11.2015 / 19:20

2 respostas

1

As pessoas geralmente usam a barra / como o delimitador sed, mas você pode usar qualquer caractere que desejar; por exemplo, ! . Idealmente, use um delimitador que não apareça em sua pesquisa ou texto de substituição, caso contrário, é necessário citá-lo.

$ echo '"/hotel' | sed s!^"/hotel!"/Tay!
"/Tay

Eu citei:

"hotel

com aspas simples para evitar que o shell fique confuso com a marca de aspas duplas soltas. Aqui está uma versão sem aspas (que, portanto, tem que escapar das marcas de aspas duplas do shell):

$ echo \"/hotel | sed s!^"/hotel!"/Tay!

Editado para incluir o caractere ^ "início da linha" para impor a correspondência no início da linha. Exemplo de um não-jogo:

$ echo foo\"/hotel | sed s!^"/hotel!"/Tay!
foo"/hotel
    
por 17.11.2015 / 19:28
-1

Uma maneira de fazer isso é escapar do / e do " com um" \ "

echo '"/hotel' | sed 's/\"/hotel/Tay/g'

    
por 17.11.2015 / 19:35

Tags