Ich versuche sed
zu verwenden, um eine Reihe von Textzeilen in einer Datei, die wie folgt aussehen zu verwandeln:Wie transformieren Sie diese Zeilen mit erfassten Gruppen?
{ Interop.SecurityStatus.AlgorithmMismatch, SecurityStatusPalErrorCode.AlgorithmMismatch },
{ Interop.SecurityStatus.BadBinding, SecurityStatusPalErrorCode.BadBinding },
{ Interop.SecurityStatus.BufferNotEnough, SecurityStatusPalErrorCode.BufferNotEnough },
{ Interop.SecurityStatus.CannotInstall, SecurityStatusPalErrorCode.CannotInstall },
dazu:
[Interop.SecurityStatus.AlgorithmMismatch] = SecurityStatusPalErrorCode.AlgorithmMismatch,
[Interop.SecurityStatus.BadBinding] = SecurityStatusPalErrorCode.BadBinding,
[Interop.SecurityStatus.BufferNotEnough] = SecurityStatusPalErrorCode.BufferNotEnough,
[Interop.SecurityStatus.CannotInstall] = SecurityStatusPalErrorCode.CannotInstall,
Dies ist, was ich versucht habe so weit erreichen dies, mein rostiges regexp Wissen mit:
$ sed -i 's/{ (.*), (.*) }/\[\1\] = \2/g' file_name
Leider scheint es nicht zu funktionieren, wie ich wieder diesen Fehler von meinem Terminal bekommen:
sed: -e expression #1, char 30: invalid reference \2 on `s' command's RHS
Ich bin nicht sicher, warum dies geschieht, denn soweit ich I 2 Klammern haben sehen kann (und damit 2 erfaßt Gruppen). Kann mir jemand erklären, warum sed
diesen Fehler zurückgibt und wie man ihn repariert? Vielen Dank.
Vielen Dank für die ausführliche und informative Antwort! Lief wie am Schnürchen :) –