tr'[z-a]''[a-z]'产生错误信息

时间:2011-12-07 23:53:04

标签: bash tr

我想使用rev命令模拟tr命令(字母表上)

所以我做了这个

echo abcdefghijklmnopqrstuvxyz | tr '[z-a]' '[a-z]'

那给了我

  

tr:“z-a”的范围端点处于反向整理顺序

所以我试过

echo abcdefghijklmnopqrstuvxyz | tr 'abcdefghijklmnopqrstuvxyz' 'zyxvutsrqponmlkjihgfedcba'

它工作正常,输出为zyxvutsrqponmlkjihgfedcba

tr '[z-a]' '[a-z]'错误?

如果我指定tr '[a-c]' '[c-a]',它也可以正常工作。

任何帮助将不胜感激

谢谢

1 个答案:

答案 0 :(得分:4)

我认为你幸运的是'[c-a]',我的tr说tr: [c-a]: invalid destination string,这是我所期待的。

我所处理的所有语言中的字符范围,即[a-z],需要提升价值。 很高兴您已经找到了解决方案。

或者编写一个可以像tr "[a-z]" "[$( revCharRange a-z )]"一样使用的功能 (由于创建反向字符范围所需的子shell,这将更加昂贵。

修改 revCharRange a-z将输出zyxw...cba

的位置

我希望这会有所帮助。