"tr"などの文字を翻訳するために "sed"を使用できますか?

次のように、ある文字セットを別のセットの対応する文字に置き換えたいと思います。

original set: ots
"target" set: u.x

foobartest → fuubar.ex.

このような翻訳/翻訳はこのコマンドの特徴ですtr

$ echo 'foobartest' | tr 'ots' 'u.x'
fuubar.ex.

残念ながら、trその場でファイルを変更することはサポートされていませんsed。一時ファイルホイールを再作成する必要がないようにこれを
使用したいと思います。sed

ベストアンサー1

sedほとんどの実装でyは、少なくともうまく機能するコマンドを使用すると、次のようになります。tr

$ echo 'foobartest' | sed 'y/ots/u.x/'
fuubar.ex.

このyコマンドはPOSIXsed仕様したがって、すべてのプラットフォームで実行する必要があります。

そのため、sedファイルを編集されたバージョンに置き換えることができ、面倒な一時ファイルビジネスを節約できます(実装がPOSIXで指定しない対応するsedオプションをサポートしている場合)。-i

$ sed -i 'y/ots/u.x/' some-file.txt

現在のBSDの実装sed tr一部の特殊なケースでは、実際に動作を反映していません。

おすすめ記事