我需要在KornShell(ksh)中创建一个简单的固定宽度文本文件。我的current attempt使用printf填充字符串的效果不佳。在ksh中创建固定宽度字符串的最简短,最干净的方法是什么?
答案 0 :(得分:2)
KSH在解析某些输入时会将多个空格压缩为一个空格。因此,为了实现您想要的功能,您必须将格式化的字符串直接写入文件,而不必将其传递给任何变量。使用printf
一次格式化所有内容并重定向到文件:
printf "%-10s%-5s%-20s\n" $str1 $str2 $str3 >> file
答案 1 :(得分:1)
正如我在回答这个问题时所说,你需要在你的变量周围加上引号。
TEXT=`padSpaces "TEST" 10`
TEXT="${TEXT}A"
echo ${TEXT}
TEST A
echo "${TEXT}"
TEST A