KornShell- создание текстового файла с фиксированной шириной

Мне нужно создать простой текстовый файл фиксированной ширины в KornShell (ksh). Моя текущая попытка использовать printf для заполнения строки не работает очень хорошо. Какой самый короткий и чистый способ создать строку фиксированной ширины в ksh?

2 ответа

Решение

KSH сжимает несколько пробелов в один, когда он анализирует определенные входные данные. Таким образом, чтобы достичь желаемого, вы должны записать отформатированную строку непосредственно в файл, не пропуская ее через переменные. использование printf отформатировать все за один раз и перенаправить в файл:

printf "%-10s%-5s%-20s\n" $str1 $str2 $str3 >> file

Как я уже говорил в своем ответе на этот вопрос, вы должны заключать в кавычки ваши переменные.

TEXT=`padSpaces "TEST" 10`
TEXT="${TEXT}A"
echo ${TEXT}
TEST A
echo "${TEXT}"
TEST          A
Другие вопросы по тегам