가변 길이 출력을 오른쪽 정렬로 만드는 방법은 무엇입니까?

가변 길이 출력을 오른쪽 정렬로 만드는 방법은 무엇입니까?

그래서 나는 이것을 원하지 않습니다:

echo "9"
9

대신에 이것이 필요합니다. 예를 들어, 앞에 4개의 공백이 옵니다.

MAGICK "9"
    9

따라서 10을 사용하려고 하면 다음과 같습니다.

MAGICK "10"
   10

그러면 그 앞에는 3칸만 남게 됩니다. 이런 방식으로 출력 형식을 어떻게 지정합니까?

답변1

$ alias MAGICK="printf '%5s\n'"
$ MAGICK 10
   10

답변2

printf출력 형식을 지정하려는 경우 이 옵션을 사용해야 합니다.

위의 예에서는 1을 사용할 수 있습니다 .

printf "\t%s\n" "9"

어디에 \t탭 문자가 있고, %s인쇄하려는 문자열이 있고, \n개행 문자가 있습니다.

많은 쉘에는 자체 버전이 있습니다 printf. 자세한 내용은 설명서를 확인하세요.

[1] 참고: 귀하의 질문에서 귀하가 달성하려는 목표가 완전히 명확하지 않습니다...

답변3

파이프 출력에 적합:

alias rj='xargs printf "%$((${COLUMNS}-4))s\n"'

seq 0 $LINES | rj

관련 정보