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
}

自動整列を行わないため、フィールド幅が大きくなると中断されます。見てこの投稿自動整列のため。

関連情報