我将如何使用printf?
指定不同的列宽度和新线路例如:< --- col A --->< -------------------------------------------------------------------------------------------------------------------------------------->< -col C->
我已经分手尝试做单个printf语句:
printf "%-20s" $COLA && printf "%-14s" $COLB
这一定不能正确...对于一个新线,我一直在附加回声"我知道这是不对的...
printf "%-20s" $COLA && printf "%-14s" $COLB && echo ""
这里的所有内容都有太大的错误,但是我对printf
很新我知道/n会断路,但是它正在将一行中的所有字段分解为新线路。
组合语句
printf '%-20s%-14s%sn' 'Col A' 'Col B' 'Col C'
结果
Col A Col B Col C
printf "%-20s %-14s %sn" "$COLA" "$COLB" "$COLC"
如果参数多于转换规格,则printf
在格式字符串耗尽时从格式字符串的开头开始。但是,上面的呼叫确保即使$COLA
,$COLB
或$COLC
中有空格,这也会按预期格式化数据(或者至少,我认为是预期的)。