Я хочу избежать имени файла DOS, поэтому я могу использовать его с sed. У меня есть DOS командного файл что-то вроде этого:DOS filename escaping для использования с командами * nix
set FILENAME=%~f1
sed 's/Some Pattern/%FILENAME%/' inputfile
(Примечание: %~f1
- расширяет %1
на полное имя пути - C:\utils\MyFile.txt
)
я обнаружил, что слеш %FILENAME%
просто спасаясь следующей буква ,
Как я могу удвоить их так, чтобы они были экранированы?
(я Cygwin установлен так, не стесняйтесь использовать любые другие команды * NIX)
Решение
Объединяя Джереми и Александр Nedelcu-ые годы предложения и использования | для разделителя в команде sed У меня есть
set FILENAME=%~f1
cygpath "s|Some Pattern|%FILENAME%|" >sedcmd.tmp
sed -f sedcmd.tmp inputfile
del /q sedcmd.tmp