Заменить путь в Windows с помощью sed?

Заменить путь в Windows с помощью sed?

Я пытаюсь избавиться от всех путей, включающих текущий каталог, поэтому я сделал следующее:

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

в командной строке, но это не сработало — все вышло так же, как и раньше.

Как мне это реализовать?

решение1

Проблема с вашей командой в том, что обратные косые черты рассматриваются как экранированные символы, а не как буквальные обратные косые черты.

Эту проблему можно обойти, сохранив экранированное имя каталога во вспомогательной переменной %dir%:

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

(Если используется в пакетном файле, замените каждый %aна %%a.)

Теперь вы можете использовать sedкак обычно:

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

Связанный контент