マイナス記号を tr に置き換える方法

マイナス記号を tr に置き換える方法

いくつかの記号を空白に置き換えようとしていますが、trこれが正しいコマンドだと思います。だから私は努力しました

cat myfile | tr '_[]()-/' ' '

しかし、エラーが発生しました。

range-endpoints of ']-/' are in reverse collating sequence order

おそらく、入力文字にマイナス記号を使用できないからです。を使ってこれを行うことはできますかtr

答え1

このメッセージはGNUから来たように見え、trロケールのいくつかの問題が原因である可能性があります。これ情報ページでは、セットの一部として混乱しないようにセットのtr最後の項目を配置することをお勧めします。-範囲、例えば、

cat myfile | tr '_[]()/-' ' '

答え2

すべてのPOSIXの場合tr:

tr '_][()/-' '[ *]' <file

動作します。

[ *]POSIXが必要です。存在する:

tr string1 string2

いつ文字列2比較する。 。 。短い文字列1、BSDがtrいっぱいになります文字列2最後のキャラクターは文字列2したがって、tr '_][()/-' ' '効率は保証されません。

関連情報