带awk的漂亮打印表

带awk的漂亮打印表,awk,formatting,tabular,Awk,Formatting,Tabular,我想打印一个如下所示的表: > 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 我的生成脚本如下所示

我想打印一个如下所示的表:

> 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格式设置

我怎样才能安排字幕 因为立柱的排列方式 这就把它们放在了最上面 各栏

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

页面中的示例:


这个班轮怎么样

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

也就是说,使用
开始
打印标题,然后打印根据printf格式化的每一行,所有数字都在
输入
文件中,这里假设每一行上有4个数字,没有其他数字。Tweek it to your need…

使用
awk
,我们如何确保列宽适合任意长度的字符串?@FelipeAlvarez——发布一个新问题。但您可以对数据进行双重传递。第一遍计算最大宽度,第二遍使用第一遍的宽度打印数据。第三种选择是使用足够大的宽度。第四个是生成csv文件,并在电子表格中使用该文件,或使用python和csv模块等。另外,请查看
程序。做一个^man列“@Fredrik Pihl嗨,我想把存储在全局变量中的一些信息制成表格。如何在上述awk命令中使用此变量以表格格式打印。@runner--您的意思是
a=“a b c d”;awk{print$1}还不知道。非常感谢你的提示!