2

revコマンドで(アルファベットで)コマンドtrをエミュレートしたい

だから私はこれをやった

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

それは私に与えます

tr: `za' の range-endpoints は逆の照合シーケンス順です

だから私は試しました

echo abcdefghijklmnopqrstuvxyz | tr 'abcdefghijklmnopqrstuvxyz' 'zyxvutsrqponmlkjihgfedcba'

それは正常に動作し、出力はzyxvutsrqponmlkjihgfedcba

それは間違っていtr '[z-a]' '[a-z]'ますか?

私が指定すれば、tr '[a-c]' '[c-a]'それもうまくいきます。

どんな助けでもいただければ幸いです

ありがとうございました

4

1 に答える 1

4

'[ca]'のことであなたの幸運だと思います、私のtrは言いますtr: [c-a]: invalid destination string、それは私が期待することです。

私が扱ったすべての言語の文字範囲、つまり[az]は、値が上がる必要があります。あなたがすでにあなたの解決策を理解していることを嬉しく思います。

または、次のように使用できる関数を記述しますtr "[a-z]" "[$( revCharRange a-z )]" (逆文字範囲を作成するために必要なサブシェルのため、より高価になります。

revCharRange a-z出力する 場所を編集するzyxw...cba

これがお役に立てば幸いです。

于 2011-12-08T01:46:34.903 に答える