2012-09-17 7 views
8

私はLinux端末で...| awk '{print $5"\t\t" $3"\t"$4}'で終わる長いパイプを行います。列にはタブが埋め込まれています。最初の列の項目の文字数が異なるため、2番目の列の結果は完全に垂直ではありません。どのようにテーブルを完璧に見えるようにする?パイプへawkはLinux端末のテーブルのような、またはExcelのような列を出力しますか?

enter image description here

+0

awkの列アライメントフラグを試してみてください。http:// sta ckoverflow.com/questions/6345429/how-do-i-print-some-text-in-bash-and-pad-it-with-spaces-to-a-certain-width –

答えて

23

試しコラム-tの結果:

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

があなたのフィールドはタブには、次の1行のスクリプトは、セルと表を印刷することができ分離されている場合、それは

+0

| column -t helped =)ありがとう君は! – Ivan

+1

+1 'tabs'コマンドを使うこともできます。たとえば、大きなタブサイズを設定しようとすると、' tabs 25'となります。その後、あなたのパイプを実行します。十分な大きさであれば、望ましい結果が得られます。しかし、私は 'column -t'を使うのが好きです – Steve

+0

' column'にパイプしている場合は、最初のフィールドの後ろにダブルタブが必要なくなりました(私はそのフィールドに広い値を収容することを前提としていました)。 – chepner

6

を役に立てば幸い境界線

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

Description   |value     |Comment 
----------------------------------------------------------------------- 
Internal    |322     | 
----------------------------------------------------------------------- 
External    |42515     | 
----------------------------------------------------------------------- 
関連する問題