sed 単一文字をフルワードに置き換えるには BSD sed?

sed 単一文字をフルワードに置き換えるには BSD sed?

GNUソリューションを見つけたようですが、BSDsedソリューションが必要です。

私がやりたいことは、一度に単語全体を変えることです。単語が「clayii」で、私のコードがsed 's/c/k/g;s/l/i/g;s/a/e/g;s/y/i/g;s/k/o/g'「kieii」を生成すると予想していますが、明らかな理由で「oieiii」を生成します。最後の部分ではk最初から検索して見つけますが、単語全体を検索する場合は絶対にそうしません。

明らかに「clayii」は常に異なるので、単一の文字を置き換えて再起動しないことを望んでいます。すでに最初の文字を置き換えてnから最初に見つかった場合は、再起動しないでください。したがって、置き換えられたコンテンツは検出できる場合はデフォルトで無視されます。

解決策はありますか?

ベストアンサー1

y//代わりに(sedの組み込みtrコマンド)を使用することもできますs///

$ echo clayii | sed -e '/clayii/ y/clayk/kieio/'
kieiii

このy//コマンドは、一致する単語だけでなく、行全体で動作し続けます。

おすすめ記事