Antworten:
Die triviale Antwort lautet "mehr Backslashes, weniger Leerzeichen":
echo "AXIS2C_HOME=/usr/local/Axis2C" | sed 's/\(^AXIS2C_HOME=\)\(.*\)/\2 \1/'
Aber die breitere Antwort lautet: "Warte, was versuchst du zu tun?" Möchten Sie, dass die Schlüssel-Wert-Paare in nützliche Variablen aufgeteilt werden, oder versuchen Sie wirklich nur, die Eingabe in die umgekehrte Syntax zu mischen, um sie an etwas anderes weiterzuleiten?
Sed ist großartig, aber Perl kann das auch und es erfordert keinen Wald von Backslashes:
% echo "AXIS2C_HOME=/usr/local/Axis2C" | perl -pe 's/(^AXIS2C_HOME=)(.*)/\2 \1/'
/usr/local/Axis2C AXIS2C_HOME=
Außerdem haben Sie die volle Leistung der Engine für reguläre Ausdrücke, sodass Sie noch komplexere Muster erstellen können.
sedsolches wie GNU sed haben, das erweiterte reguläre Ausdrücke unterstützt:echo "AXIS2C_HOME=/usr/local/Axis2C" | sed -r 's/(^AXIS2C_HOME=)(.*)/\2 \1/'