8 echo "AXIS2C_HOME=/usr/local/Axis2C" | sed 's/\(^AXIS2C_HOME=\) \(.*\)/ \2 \1/' 私が期待している出力はです/usr/local/Axis2C AXIS2C_HOME=。 私は自分が間違っていることを理解できません。:( sed — リッコM ソース
8 簡単な答えは、「バックスラッシュを増やし、スペースを減らす」です。 echo "AXIS2C_HOME=/usr/local/Axis2C" | sed 's/\(^AXIS2C_HOME=\)\(.*\)/\2 \1/' しかし、より広い答えは、「待って、あなたは何をしようとしているのですか?」です。キーと値のペアを有用な変数に分割しますか、それとも実際に入力をリバース構文に変換して別の何かにフィードしようとしていますか? — mattdm ソース
1 の後に誤ったスペースがあり=ます。試してください: sed 's/\(^AXIS2C_HOME=\)\(.*\)/\2 \1/' 以下も機能し、少し短くなります。\1最初の前に何でも/ sed 's|^\([^/]*\)\(/.*\)|\2 \1|' — SiegeX ソース
0 Sedは素晴らしいですが、Perlもこれを行うことができ、バックスラッシュのフォレストを必要としません。 % echo "AXIS2C_HOME=/usr/local/Axis2C" | perl -pe 's/(^AXIS2C_HOME=)(.*)/\2 \1/' /usr/local/Axis2C AXIS2C_HOME= さらに、正規表現エンジンの能力を最大限に活用できるため、さらに複雑なパターンを実行できます。 — jsbillings ソース 2 あなたが持っている場合も、バックスラッシュの森を避けることができsed、そのようなをGNUがサポートする正規表現を拡張することをsedのよう:echo "AXIS2C_HOME=/usr/local/Axis2C" | sed -r 's/(^AXIS2C_HOME=)(.*)/\2 \1/' — スティーブン・D @Steven D:森は私の友達です...(クマのしゃれ半分は意図したものです...残りの半分は:私はそれらがなければ失われると思います:) ...しかし、私はそれを検討しています-r ...について言及しました(私はそれについて考えました..バックスラッシュを使い続けます。そうしないと、他のすべてのsedステートメントを理解できなくなります:) — Peter.O
sed、そのようなをGNUがサポートする正規表現を拡張することをsedのよう:echo "AXIS2C_HOME=/usr/local/Axis2C" | sed -r 's/(^AXIS2C_HOME=)(.*)/\2 \1/'