Das Ergebnis der Sed-Pipe kann nicht als Argument für CD abgerufen werden.

Das Ergebnis der Sed-Pipe kann nicht als Argument für CD abgerufen werden.

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.

verwandte Informationen