【问题标题】:printf columns of different widths and newline不同宽度和换行符的 printf 列
【发布时间】:2014-01-19 13:23:07
【问题描述】:

如何使用 printf 指定不同的列宽和末尾的新行?

例如:

我已经分解为尝试像这样执行单独的 printf 语句:

printf "%-20s" $COLA && printf "%-14s" $COLB

这一定是不对的...另外,对于换行符,我一直在附加 echo "" 我知道这是不对的...

printf "%-20s" $COLA && printf "%-14s" $COLB && echo ""

这里的一切都有很多错误,但我对 printf 很陌生

我知道 /n 会换行,但它会将单行中的所有字段拆分为新行。

【问题讨论】:

    标签: bash printf


    【解决方案1】:

    合并语句

    printf '%-20s%-14s%s\n' 'Col A' 'Col B' 'Col C'
    

    结果

    Col A Col B Col C

    【讨论】:

      【解决方案2】:
      printf "%-20s %-14s %s\n" "$COLA" "$COLB" "$COLC"
      

      如果参数多于转换规范,则printf 在用完时从格式字符串的开头重新开始。但是,上面的调用确保即使$COLA$COLB$COLC 中有空格,这也会按预期格式化数据(或者,至少如我认为的那样)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-06-03
        • 2011-10-24
        • 2015-10-20
        • 1970-01-01
        • 2015-11-16
        • 2018-01-29
        相关资源
        最近更新 更多