如何根据最大列长度格式化输出

时间:2014-04-14 19:25:09

标签: shell unix formatting

根据最大列长度格式化输出。我怎样才能做到这一点?

Shell脚本或任何工具都可以。

输入

| date | ID | Typ | Actn |
| 11/29/13 | ID660011  | DP | A | 
| 11/29/13 | ID6600123  | DP | A | 

输出

| date    | ID       | Typ| Actn|
| 11/29/13| ID660011 | DP | A   | 
| 11/29/13| ID6600123| DP | A   | 

修改

  

如果我使用列-t,则这些是错误:
  $ column -t -s' |' -o' |'   input_file .feature> input_file _check.feature
  栏:非法选项 - o
  用法:列[-tx] [-c columns] [-s sep] [file ...]

     

$ echo $ SHELL / usr / local / bin / bash

     

$ column -t input_file .feature> input_file _check.feature列:   行太长了

1 个答案:

答案 0 :(得分:0)

在shell终端上,试试这个:

$ awk '
{
   for(i=1;i<=NF;i++)
   printf("%-40s%c", $i, (i==NF) ? ORS : "")
}' FS=, file.txt