いくつかの記号を空白に置き換えようとしていますが、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 '_][()/-' ' '
効率は保証されません。