2011-12-07 2 views
2

[AZ]'수익률 오류 메시지가 그래서 나는 나에게TR '[ZA]' '나는 (알파벳) <code>rev</code> 명령을 에뮬레이트 할

을 제공이

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

했다

TR`ZA '의 범위 - 엔드 포인트 시퀀스 순서를 반대로 조합에

그래서 나는

echo abcdefghijklmnopqrstuvxyz | tr 'abcdefghijklmnopqrstuvxyz' 'zyxvutsrqponmlkjihgfedcba' 

을 시도하고, 출력이 tr '[z-a]' '[a-z]'에 문제가 있습니다 zyxvutsrqponmlkjihgfedcba

입니다 작품을 좋아?

tr '[a-c]' '[c-a]'으로 지정하면 올바르게 작동합니다. 어떤 도움이

을 감상 할 수있다

당신이

답변

4

나는 '[C-A]'것은 당신의 운을 생각 감사, 내 그럴 필요는 내가 기대하는 것이 무엇 인 tr: [c-a]: invalid destination string을 말한다.

내가 처리 한 모든 언어로 된 [a-z]라는 문자 범위는 가치가 상승해야합니다. 이미 솔루션을 파악한 것을 기쁘게 생각하십시오.

아니면 인해 역 문자 범위를 만드는 데 필요한 하위 껍질에 더 비싼 것 tr "[a-z]" "[$(revCharRange a-z)]" (처럼 사용할 수있는 함수를 작성.

을 도움이 되었기를 바랍니다.

+1

을 나는 의심 '[ca]'는'[','c', ...와 같은 5 문자로 해석되고 있습니다. 왜냐하면'[]'는'tr'의 문자 범위에 필요하지 않기 때문입니다 (POSIX가 아니라 SysV, 그리고 현대적인'tr'은 몇 가지주의 사항을 둘 다 허용하려고 시도합니다. –

+0

@BenJackson : 예, 좋은 지적입니다, 불행히도 제 경험은 POSIX 이전으로 돌아가서 많은 답변을 감염시킵니다 .-) 감사합니다. 모두에게 행운을 빕니다. – shellter

+0

도울 수있는 것은'tr '[a-z A-Z]' '[n-za-m N-ZA-M]''과 같은 것입니다. 번역하려는 문자 범위 사이에 오더를 넣으면 az에서 za로 순서를 바꿀 수 있습니다. 이 경우 나는 13 개의 글자로 앞으로 이동합니다 (Rot13과 같습니다). – Gcap