awk中如何设计表格?

awk中如何设计表格?

我的输入文件是file1

count  month

505  Apr-2010 
252  Mar-2010 
426  Feb-2010 
201  Jan-2010 
211  Dec-2009 

相同的文件我想要如下所示的输出

+-------+----------+
| count | month    |
+-------+----------+
|   505 | Apr-2010 |
|   252 | Mar-2010 |
|   426 | Feb-2010 |
|   201 | Jan-2010 |
|   211 | Dec-2009 |
+-------+----------+

答案1

这将适用于您的输入:

BEGIN {
     n=0
     sep="+-------+----------+"
}
{
    if (/^$/) {
        print sep
    } else if (n==0) {
        print sep
        print "| "$1" | "$2"    |"
    } else {
        print "|   "$1" | "$2" |"
    }
    n++
}
END {
    print sep
}

它不执行任何自动对齐,因此如果任何字段宽度增加,它就会中断。看一眼这个帖子用于自动对齐。

相关内容