format 命令和 C 语言中的 printf 和 sprintf 命令类似。它根据一组格式说明来格式化字符 串。此命令不会改变被操作字符串的内容。
[语法]:format spec value1 value2 ...
spec 变元包含了格式说明关键词和附加文字。使用%来引入一个关键词,后跟 0 个或者多 个修饰符,然后使用一个转换格式符结尾。
关键词的基本格式是“%aaaB” :aaa 是修饰符,B 代表一种格式转换符。例如%f 用于将对 应位置的参数转化为浮点数。
valueX 是变元。对每个变元来讲,其关键词可多达 6 部分:
- 位置说明符; - 标志; - 字段宽度;-精度; - 长度; - 转换符。
转换符之外的关键词都可以看作修饰符。
1.1 位置说明符 i$表示从第 i 个变元取数值而不是根据通常的位置对应关系对应的变元。位置记 数从 1 开始。
#要取第 2 个变元值,即 5。位置说明符的格式为 2$,并用\来引用符号$:
>set res [format "%2\$s" 1 5 9]
=>5
>puts $res =>5
set str [format "%3\$s %1\$s %2\$s" "are" "right" "You"]
=> You are right