如何用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, BSDtr将填充字符串2最后一个字符为字符串2,因此tr '_][()/-' ' '不能保证有效。

相关内容