私はコマンドを話し、printf "%5s1"
その出力は次のとおりです。
1
2
印刷された左数字と3
右数字を印刷する方法です1
。したがって、出力は次のようになります。
213
1
以下は、コマンドを使用して印刷された条件ですprintf "%5s1"
。
次のコマンドを試してみました。
printf "%5s1";printf "\r%4s2%1s3\n"
ただし、これは既存の出力を上書きし、1
次のような出力を取得します。
2 3
最初に使用する必要があると仮定すると、すでに印刷されている数字の右側の数字を失うことなくどのように1
印刷できますか?私は似たようなものを探しています:printf
printf "%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