在UNIX中格式化字段宽度

时间:2012-08-19 10:50:10

标签: unix

我的数据格式如下:

Having

Require


我的主要问题是,我有一个文件,其字段/列中的数据太长了。

如果我只是显示输出(通过命令filename.xls | awk -F“|”'{print $ 1,$ 2,$ 3)),那么看起来并不好......并且阅读非常复杂。 如: fghfhgjhhhkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkhkk

....是否可以设置FIELD WIDTH ???

由于

更新... ghoti tripleee (如果不清楚,请放大) 输入文件是tab delimeted ......

enter image description here

2 个答案:

答案 0 :(得分:2)

使用awk的substr()函数。例如:      awk'{print substr($ 3,0,10)}'

man awk 了解详情。

答案 1 :(得分:2)

从shell中,您可以使用“fmt”命令将文本换行到多个列:

[ghoti@pc ~]$ text="dfgkjfd vonhsadoi djo asdoi sdojvdjkdo soij dsmioo broingli."
[ghoti@pc ~]$ printf '%30s\n' | tr \  -
------------------------------
[ghoti@pc ~]$ fmt -30 <<<"$text"
dfgkjfd vonhsadoi djo asdoi
sdojvdjkdo soij dsmioo
broingli.
[ghoti@pc ~]$ 

您应man fmt验证环境中的命令行选项。 <<<Text表示法使用bash表示法,并不一定如何使用此命令。

表格中的布局更复杂,单靠awk无法完成。