0

我有以下格式的数据:

有

要求


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

如果我只是简单地显示输出(通过命令 filename.xls|awk -F"|" '{print $1,$2,$3)),那么就不好看了……而且阅读起来非常复杂。如: fghfhgjhhhkkkkkkkkkkkkkkkjggihkjlkkkkkkkkkkkkkkkkkkkkmnkbjguyuyu yyuyguggugyrdgvjbkjnkl fuyffffhgghfhfhfddtdxgxgfugjb uguyffhhigguyt7gbjtujbkb.......

....是否可以设置字段宽度???

谢谢

更新...到ghotiTripleee(如果不清楚,请放大)输入文件是制表符分隔的......

在此处输入图像描述

4

2 回答 2

2

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

man awk了解详情。

于 2012-08-19T11:03:53.873 回答
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符号由bashshell 使用,不一定是您想要使用此命令的方式。

表格内的布局更为复杂,不能仅靠 awk 来完成。

于 2012-08-19T11:40:30.493 回答