KSH сжимает несколько пробелов в один при анализе определенных входных данных. Таким образом, чтобы достичь желаемого, вы должны записать отформатированную строку непосредственно в файл, не пропуская ее через переменные. Используйте printf
для форматирования всего за один раз и перенаправления в файл:
printf "%-10s%-5s%-20s\n" $str1 $str2 $str3 >> file