「abbc」という文字列があり、次のように置き換えたいとします。
- アブ→ BC
- 紀元前 -> アブ
2 つの置換を試みると、結果は期待したものと異なります。
echo 'abbc' | sed 's/ab/bc/g;s/bc/ab/g'
abab
では、以下のように置き換えるにはどの sed コマンドを使用すればよいでしょうか?
echo abbc | sed SED_COMMAND
bcab
編集: 実際には、テキストには 2 つ以上のパターンがある可能性があり、必要な置換の数がわかりません。これはsed
ストリーム エディターであり、その置換は貪欲であるという回答があったので、そのためには何らかのスクリプト言語を使用する必要があると思います。
ベストアンサー1
おそらく次のようになります:
sed 's/ab/~~/g; s/bc/ab/g; s/~~/bc/g'
~
文字列に含まれないことが分かっている文字に置き換えます。