2つの同じ文字を異なる文字列に置き換える

2つの同じ文字を異なる文字列に置き換える

Github Markdown構文で使用される効果をコマンドラインに追加したいと思います。この文字列を例に挙げます。

`This` is an `example` of Markdown `code snippets.`

すべての最初のバックティックをFOOに変更し、他のすべてのバックティックをBARに変更したいと思います。 sedでこの問題をどのように処理できますか?

ベストアンサー1

ここで注目すべき2つの可能なシナリオがあるようです。

`のすべての偶数発生を1つのパターンに変更し、奇数の発生を別のパターンに置き換えます(この回答):

sed 's:`\([^`]`*\)`:FOO\1BAR:g'

最初のパターンを1つのパターンに置き換え、残りのパターンを別のパターンに置き換えます。

sed 's:`:FOO:' | sed 's:`:BAR:g'

おすすめ記事