인쇄된 출력물의 왼쪽과 오른쪽에 인쇄하는 방법

인쇄된 출력물의 왼쪽과 오른쪽에 인쇄하는 방법

나는 명령을 말하고 printf "%5s1"그 출력은 다음과 같습니다

    1

2인쇄된 왼쪽 숫자와 3오른쪽 숫자를 인쇄하는 방법입니다 1. 따라서 출력은 다음과 같습니다.

   213

1다음은 command 를 사용하여 인쇄된 조건입니다 printf "%5s1".

다음 명령을 사용해 보았습니다.

 printf "%5s1";printf "\r%4s2%1s3\n"

하지만 이는 기존 출력을 덮어쓰고 1다음과 같은 출력을 얻습니다.

   2 3

먼저 사용해야 한다고 가정하면 이미 인쇄된 숫자의 오른쪽에 있는 숫자를 1잃지 않고 어떻게 인쇄할 수 있나요? 나는 비슷한 것을 찾고 있습니다 :printfprintf "%5s1"

printf "%5s1";printf "\r%4s2???\n"

답변1

left=$(tput cub1) right=$(tput cuf1)
printf %5s1; printf '%s\n' "$left${left}2${right}3"

세부 사항

~에서Bash 프롬프트 HOWTO:

tput cub1
move left one space

tput cuf1
non-destructive space (move right one space)

답변2

인쇄 순서를 반대로 하고 오른쪽에 원하는 문자열을 먼저 인쇄하세요.

printf "%5s1";printf "3\r%4s2\n"

답변3

또한 \b백업의 경우:

$ printf "%5s1";printf "3\b\b\b2\n"
    213

관련 정보