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

问题描述 投票:2回答:1

我想用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]'它也可以正常工作。

任何帮助,将不胜感激

谢谢

bash tr
1个回答
4
投票

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

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

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

编辑revCharRange a-z将输出zyxw...cba的位置

我希望这有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.