5

問題が 1 つあります。私のテキストは、指定された幅で右揃えにする必要があります。出力を目的のサイズにカットすることはできましたが、すべてを右側に配置するのに問題があります

これが私が得たものです:

#!/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"

ありがとう

4

3 に答える 3

21

試す:

printf "%40.40s\n" "$line"

これにより、幅 40 で右揃えになります。切り詰めたくない場合は、ドロップします.40(ありがとう、Dennis!):

printf "%40s\n" "$line"

例えば:

printf "%5.5s\n" abc
printf "%5.5s\n" abcdefghij
printf "%5s\n" abc
printf "%5s\n" abcdefghij

印刷されます:

  abc
abcde
  abc
abcdefghij
于 2010-11-21T16:57:46.963 に答える
1

あなたの最後のステップは

sed -e :a -e 's/^.\{1,$length\}$/ &/;ta'
于 2010-11-21T16:58:13.453 に答える