Ich möchte einen DOS-Dateinamen entkommen, so dass ich es mit sed verwenden kann. Ich habe eine DOS-Batch-Datei etwas wie folgt aus:DOS-Dateinamen für die Verwendung mit * Nix-Befehle
set FILENAME=%~f1
sed 's/Some Pattern/%FILENAME%/' inputfile
(Hinweis: %~f1
- erweitert %1
zu einem vollständigen Pfadnamen - C:\utils\MyFile.txt
)
ich, dass die Schrägstriche in %FILENAME%
gefunden werden nur den nächsten Buchstaben zu entkommen .
Wie kann ich sie verdoppeln, damit sie ausgeblendet werden?
(I Cygwin installiert haben, so fühlen sich frei, alle anderen * nix-Befehle zu verwenden)
Lösung
Kombination Jeremy und Alexandru Nedelcu Vorschläge und die Verwendung | für das Trennzeichen in der sed Befehl habe ich
set FILENAME=%~f1
cygpath "s|Some Pattern|%FILENAME%|" >sedcmd.tmp
sed -f sedcmd.tmp inputfile
del /q sedcmd.tmp