正确的文字对齐 - bash

cub*_*ilo 4 bash shell alignment text-alignment fold

我有一个问题.我的文本应该在指定的宽度右对齐.我已设法将输出切割到所需的大小,但我把所有东西放在右侧都有问题

这是我得到的:

#!/usr/local/bin/bash

length=$1
file=$2
echo $1

echo -e "length = $length \t  file = $file "
f=`fold -w$length $file > output`
while read line
do
        echo "line is $line"
done < "output"
Run Code Online (Sandbox Code Playgroud)

谢谢

icy*_*com 17

尝试:

printf "%40.40s\n" "$line"
Run Code Online (Sandbox Code Playgroud)

这将使其与宽度40对齐.如果你不想截断,请放弃.40(感谢Dennis!):

printf "%40s\n" "$line"
Run Code Online (Sandbox Code Playgroud)

例如:

printf "%5.5s\n" abc
printf "%5.5s\n" abcdefghij
printf "%5s\n" abc
printf "%5s\n" abcdefghij
Run Code Online (Sandbox Code Playgroud)

将打印:

  abc
abcde
  abc
abcdefghij
Run Code Online (Sandbox Code Playgroud)