Как напечатать так, чтобы пространство между каждым столбцом было в одинаковом интервале .. KSH - PullRequest
0 голосов
/ 21 января 2020

Например, мой файл содержит следующее содержимое ...

set -A array
set -A test
${array[0]}=1
${array[1]}=2
${array[2]}=3
${test[0]}="Boy"
${test[1]}="Girl"
${test[2]}="Dog"
x=0
while [ $x -lt 3 ];do
      print "${array[$x]}" " " "${test[$x]}"
      x=$((x+1)
done 

Как вы можете, я должен вручную контролировать интервал между печатью столбцов .... Я думаю, что видел как

printf "%3s %-4s" "${array[$x]}" "${test[$x]}"

По-видимому, это не работает, так как распечатано

  1Boy
  2Girl
  3Dog

.................. Если мне не нравится

 printf "%s %s" "${array[$x]}" " " " ${test[$x]}"

он распечатается так, как я хотел

 1 Boy
 2 Girl
 3 Dog
...