¿Reemplazar ruta en Windows con sed?

¿Reemplazar ruta en Windows con sed?

Estoy tratando de deshacerme de todas las rutas que incluyen el directorio actual, así que lo hice

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

en el símbolo del sistema, pero no funcionó: todo salió como antes.

¿Cómo lo haría funcionar?

Respuesta1

El problema con su comando es que las barras invertidas se tratan como caracteres de escape, no como barras invertidas literales.

Puede solucionar esto almacenando el nombre del directorio escapado en una variable auxiliar %dir%:

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

(Si se usa en un archivo por lotes, reemplace cada %apor %%a).

Puedes usar sedcomo de costumbre ahora:

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

información relacionada