
Ich habe einen funktionierenden echo
+ sed-Befehl
echo %cd% | sed -E 's#(C\:\\\some\\\path\\\)([-_A-Za-z0-9]+).*#\1\2#g'
Ich kann das Ergebnis nicht als Argument verwenden cd
(Windows, cmder)
~~=cd $(echo %cd% | sed -E 's#(C\:\\\some\\\path\\\)([-_A-Za-z0-9]+).*#\1\2#g')
Der Fehler:
Die Syntax für Dateiname, Verzeichnisname oder Datenträgerbezeichnung ist falsch. sed: -e Ausdruck Nr. 1, Zeichen 49: unbekannte Option für „s“
Was mache ich falsch?
Antwort1
's#(C\:\\\some\\\path\\\)([-_A-Za-z0-9]+).*#\1\2#g'
Sollte sein
's#(C\:\\some\\path\\)([-_A-Za-z0-9]+).*#\1\2#g'
Sie haben mit dem die besondere Bedeutung des ersten ")" entfernt "\)"
.
Aber „%cd%“ hat in Linux oder Bash keine Bedeutung.