如何格式化输出

时间:2012-07-27 05:39:15

标签: shell

 bid     bookname        author
 1       unix    sumitaba das
 2       java    balaguruswamy
 3       db      elmasari
 4       c       padma redddy
 5       ada     yeshwant kanetkar
 6       datastructure   padma redddy
 7       microprocessor  padma redddy

如何将上面的输出格式化为列之间的适当空格,使其看起来如下:

bid     bookname        author
1       unix            sumitaba das
2       java            balaguruswamy
3       db              elmasari
4       c               padma redddy
5       ada             yeshwant kanetkar
6       datastructure   padma redddy
7       microprocessor  padma redddy

我正在将SQL查询的结果捕获到一个文件中并在我的程序中显示该文件。

2 个答案:

答案 0 :(得分:1)

在名称中使用“_”临时

awk 'NF==4{$3=$3 "_" $4; $4=""} 1' foo.txt | column  -t  | tr '_' ' '

答案 1 :(得分:1)

看起来您的输入的列由制表符分隔,并且您已经将tabstop设置为8时粘贴了它的样子。如果是这种情况,那么您可以利用这些选项卡来修改slitvinov的答案:

your_sql_command | column -s '<TAB>' -t

您必须在我编写的命令行中输入文字选项卡。要在shell命令行执行此操作,请按Ctrl-V,然后按Tab键。如果您将它放入shell脚本中,只需确保文本编辑器插入实际选项卡而不是将其转换为一系列空格。或者根据你的shell,这可能有效:

your_sql_command | column -s $'\t' -t