【问题标题】:awk to output table-like or excel-like columns in linux terminal?awk 在 linux 终端中输出类似表格或类似 excel 的列?
【发布时间】:2012-09-09 15:18:46
【问题描述】:

我做了一个长管道,在 Linux 终端中以 ...| awk '{print $5"\t\t" $3"\t"$4}' 结尾。列填充有选项卡。第一列条目具有不同数量的字符,因此第二列结果不是完全垂直的。如何让桌子看起来完美?

【问题讨论】:

标签: bash awk terminal multiple-columns


【解决方案1】:

尝试将结果通过管道传输到 -t 列:

...| awk '{print $5"\t\t" $3"\t"$4}'|column -t

希望对你有帮助

【讨论】:

  • |column -t help =) 谢谢!
  • +1 您也可以使用tabs 命令,例如尝试设置较大的标签大小:tabs 25。然后运行你的管道。如果它足够大,您将获得所需的结果。但是,我更喜欢使用column -t
  • 如果您要输入column,则不再需要第一个字段后面的双标签(我假设这是为了容纳该字段中的宽值)。
  • 扩展@SuicidalSteve 所做的评论,您还可以使用| expand -t <number> 将制表符转换为空格(同样,如果它足够大,您将获得所需的结果)。我发现这在事后在文本编辑器中查看很有用。
  • 你可以让它更简单:awk '{print $5,$3,$4}'|column -t
【解决方案2】:

如果您的字段是制表符分隔的,则以下一行脚本可以打印带有单元格边框的表格

sed -e 's/\t/_|/g' table.txt |  column -t -s '_' | awk '1;!(NR%1){print "-----------------------------------------------------------------------";}'

Description            |value                 |Comment
-----------------------------------------------------------------------
Internal               |322                   |
-----------------------------------------------------------------------
External               |42515                 |
-----------------------------------------------------------------------

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-12
    • 1970-01-01
    • 2012-12-12
    • 2020-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多