11

次のようなテーブルを印刷したいと思います。

> field1 field2 field3 field4    
> 11.79     7.87    11.79    68   
> .. more numbers

列のキャプションがそれぞれの列の上に配置されるように配置するにはどうすればよいですか?

> field1    field2  field3   field4       
> 11.79     7.87    11.79    68
> .. more numbers

私の生成スクリプトは次のようになります:capture.sh:

  echo 'field1, field2, field3, field4'
  awk '/Capture the tablestuff/{set variables}
  /DONE/ { printf("%5d %8.2f %8.2f %8.2f \n" ,field1, field2, field3, filed4); '

可能であれば、echoコマンドのASCIIフォーマットは絶対に控えたいと思います。

4

2 に答える 2

32

カラムのキャプションがそれぞれの列の上に配置されるように配置するにはどうすればよいですか?

を使用しcolumnます。

マニュアルページの例:

   (printf "PERM LINKS OWNER GROUP SIZE MONTH DAY HH:MM/YEAR NAME\n" \
   ; ls -l | sed 1d) | column -t
于 2011-06-07T09:06:49.320 に答える
24

このワンライナーはどうですか?

awk 'BEGIN {printf("%s %8s %8s %8s \n" ,"field1", "field2", "field3", "field4")}
{printf("%6.2f %8.2f %8.2f %8.2f\n", $1, $2, $3, $4)}' input

field1   field2   field3   field4 
 11.79     7.87    11.79    68.00
 11.79     7.87    11.79    68.00
 11.79     7.87    11.79    68.00
 11.79     7.87    11.79    68.00

つまり、を使用BEGINしてヘッダーを印刷してから、printfに従ってフォーマットされた各行を、inputファイル内のすべての数値とともに印刷します。ここでは、各行に4を想定し、それ以外は何も想定していません。あなたのニーズに合わせてTweekそれ...

于 2011-06-07T09:07:50.520 に答える