 <p>I think your lucky with the '[c-a]' thing, My tr says <code>tr: [c-a]: invalid destination string</code>, which is what I would expect. </p> <p>Character ranges, i.e. [a-z], in all the languages I've dealt with, need to ascend in value. Be happy that you've already figured out your solution. </p> <p>Or write a function that you can use like <code>tr "[a-z]" "[$( revCharRange a-z )]"</code> (which would be more expensive due to the sub-shells required to create the reverse character range.</p> <p>I hope this helps.</p>