1

我需要在 KornShell (ksh) 中创建一个简单的固定宽度文本文件。我目前使用 printf 填充字符串的尝试效果不佳。在 ksh 中创建固定宽度字符串的最短、最简洁的方法是什么?

4

2 回答 2

2

KSH 在解析某些输入时会将多个空格压缩为一个。因此,要实现您想要的,您必须将格式化的字符串直接写入文件,而不通过任何变量传递它。用于printf一次性格式化所有内容并重定向到文件:

printf "%-10s%-5s%-20s\n" $str1 $str2 $str3 >> file
于 2009-11-16T13:51:39.577 回答
1

正如我在对该问题的回答中所说,您需要在变量周围加上引号。

TEXT=`padSpaces "TEST" 10`
TEXT="${TEXT}A"
echo ${TEXT}
TEST A
echo "${TEXT}"
TEST          A
于 2009-11-16T16:17:49.670 回答