「abbc」という文字列があり、置き換えたいとします。
- ab-> bc
- bc-> ab
2つの置換を試みた場合、結果は希望どおりではありません。
echo 'abbc' | sed 's/ab/bc/g;s/bc/ab/g'
abab
それでは、以下のように置換するためにどのsedコマンドを使用できますか?
echo abbc | sed SED_COMMAND
bcab
編集:実際にはテキストは2つ以上のパターンを持つ可能性があり、どれだけの置換が必要かわかりません。これsed
はストリームエディタであり、その置き換えは貪欲であるという回答があったので、そのためにスクリプト言語を使用する必要があると思います。
ab
またはその bc
中に複数の一致がありますか。
g
、これらのs///
コマンドの両方からフラグをドロップするだけで機能します。