Procurando e substituindo um caminho de estilo do windows usando sed

1

Minha tarefa é substituir várias entradas para \\\\server\\path1\\path2\\ with \\server\path1\path2\ em myfile.txt (remover as barras invertidas supérfluas).

Eu tentei usar o sed para isso, mas não encontrou nada para substituir:

sed 's:\\server\path1\path2\:\server\path1\path2\:g' myfile.txt

Eu também tentei escapar das barras invertidas, mas também não encontrou nada para substituir:

sed 's:\\\\server\\path1\\path2\\:\\server\path1\path2\:g' myfile.txt

Esta pode ser uma pergunta ruim, mas eu estou realmente presa a isso. Eu tentei pesquisar tudo de uma maneira para fazer isso através de um comando, mas nada que eu tente funciona.

    
por lordie 20.01.2016 / 12:26

1 resposta

1

Você pode usar

sed -e 's,\\,\,g' -e 's/^\\([^\]\)/\\/' 

(a segunda parte assegura que \something se torne \something ... você pode querer isso, ou não, dependendo de quais são seus casos de uso)

Dessa forma:

\something\already\ok   stays ok  (thanks to the 2nd part)
\\something\like\this becomes \something\like\this

Se você omitir a segunda parte,

\something\like\that becomes \something\like\that , which is wrong
    
por 20.01.2016 / 12:55