숫자의 자릿수를 계산하는 가장 좋은 방법은 무엇입니까?
예를 들어
$ echo 123 | hook
321
$ echo 12358 | hook
85321
답변1
:~> echo 123456 | rev
654321
작동해야합니다. 사용법은 매우 간단합니다. 남성의 경우:
NAME
rev - 하나 이상의 파일 줄을 반대로 바꿉니다.요약
개정 [문서...]설명
rev 유틸리티는 지정된 파일을 표준 출력으로 복사하여 각 행의 문자 순서를 반대로 바꿉니다. 파일을 지정하지 않으면 표준 입력을 읽습니다.
사용할 수 없는 경우 다음을 사용할 수도 있습니다 awk
.
:~> echo 123456 | awk '{ for(i=length;i!=0;i--)x=x substr($0,i,1);}END{print x}'
654321
원천유닉스 학교
파일을 완전히 되돌려야 하는 경우 다음과 같이 tac
명령줄에 추가할 수 있습니다.rev
tac myfile | rev
답변2
에 국한되지 않는 경우 bash
다음을 사용하세요 zsh
.
forward=123
backward=${(j::)${(Oas::)forward}}
변수 확장 플래그는 다음과 같습니다.
s::
: 빈 문자열을 분할하므로 문자당 하나의 요소가 있습니다.Oa
: 결과 배열을 반대로 바꿉니다(O
역순의 경우a
배열 첨자 순서의 경우).j::
: 요소를 빈 문자열로 연결합니다.
답변3
당신은 그것을 찾고 있습니까 rev
?
echo 123|rev
321
답변4
rev
이것은 분명하고 아마도 가장 좋은 대답일 것입니다. 하지만 rev
항상 기본적으로 설치되는 것은 아닙니다. coreutils만 사용하여 이 작업을 수행하려면 다음과 같은 더 긴 명령을 사용할 수 있습니다.
echo 123 | fold -w1 | tac | paste -d '' -s -
fold -w1
각 숫자를 한 줄에 입력하세요.tac
는 reverse 입니다cat
. 즉, 줄의 순서를 반대로 바꿉니다.paste -d '' -s -
각 행의 숫자를 다시 한 행에 연속적으로 붙여넣습니다.