如何使用printf指定不同的列宽和最后一行?
例如:< --- Col A ---> < ----------------- Col B -----------------> < -Col C->
我已经分解为尝试做这样的单独的printf语句:
printf "%-20s" $COLA && printf "%-14s" $COLB
这一定不是正确的...同样对于换行符我一直在追加回音“”,我知道这是不对的......
printf "%-20s" $COLA && printf "%-14s" $COLB && echo ""
这里的一切都有太多的错误,但我对printf很新
我知道/ n会换行,但是它将一行中的所有字段拆分为新行。
答案 0 :(得分:2)
结合陈述
printf '%-20s%-14s%s\n' 'Col A' 'Col B' 'Col C'
结果
Col A Col B Col C
答案 1 :(得分:0)
printf "%-20s %-14s %s\n" "$COLA" "$COLB" "$COLC"
如果有多个参数而不是转换规范,那么printf
会在格式字符串用完时从它开始。但是,上面的调用可确保即使$COLA
,$COLB
或$COLC
中有空格,也会按预期格式化数据(或者,至少,我认为可以预期)。