Substituir caminho no Windows com sed?

3

Estou tentando me livrar de todos os caminhos que incluem o diretório atual, então fiz

my_command | sed "s/%CD%//ig"

no prompt de comando, mas não funcionou - tudo saiu como antes.

Como eu faria funcionar?

    
por Mehrdad 29.06.2012 / 20:44

1 resposta

5

O problema com o seu comando é que as barras invertidas são tratadas como caracteres de escape, e não contra barras invertidas.

Você pode superar isso armazenando o nome do diretório com escape em uma variável auxiliar %dir% :

for /f "tokens=*" %a in ('echo %cd%^| sed "s/\/\\/g"') do set dir=%a

(Se usado em um arquivo de lote, substitua cada %a por %%a .)

Você pode usar sed como de costume agora:

my_command | sed "s/%dir%//ig"
    
por 29.06.2012 / 21:40

Tags