以下のsedは入力を正確に出力します。私がしたいのは、最初の一致するグループ(\ 1)では_のすべての_を置換しますが、2番目のグループでは置換しません。これは可能ですか?行の一部に一致するものが見つかった場合、検索して置換することはできますか?
echo 'abc_foo_bar=one_two_three' | sed 's/\([^=]*\)\(=.*\)/\1\2/'
abc_foo_bar=one_two_three
だから、私は望んでいる出力は、次のとおりです。
abc-foo-bar=one_two_three
私はあまりにも他のsedコマンドの文字列をやっているので、awkのに頼るしたくないと思いますが、私は」私がする必要があればそれに頼るでしょう。
編集:マイナー修正に再
REは本当にあなたの意図ですか?私は '\([^ =] *))\(=。* \)'を期待していました。それは私の答えに基づいていますが、必要に応じて調整することができます。 –
あなたが正しいです、私はこれを反映するために質問を更新しました。ありがとう。 –