UNIX中字段宽度的格式化
我有以下格式的数据:UNIX中字段宽度的格式化,unix,Unix,我有以下格式的数据: 我的主要问题是,我有一个文件,其字段/列中的数据太长 如果我只是简单地显示输出(通过命令filename.xls | awk-F“|”{print$1,$2,$3)),那么就看不到……而且读取起来非常复杂。 作为: FGHFHGHKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
我的主要问题是,我有一个文件,其字段/列中的数据太长 如果我只是简单地显示输出(通过命令filename.xls | awk-F“|”{print$1,$2,$3)),那么就看不到……而且读取起来非常复杂。 作为: FGHFHGHKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK ..是否可以设置字段宽度 谢谢 将…更新为ghoti和tripleee(如果不清楚,请缩放) 输入文件已被制表符删除 使用awk的substr()函数。例如: awk'{print substr($3,0,10)}' 手动awk了解详细信息。使用awk的substr()函数。例如: awk'{print substr($3,0,10)}'
有关详细信息,请参见man awk。从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 ~]$
[ghoti@pc~]$text=“dfgkjfd vonhsadoi djo asdoi sdojvdjkdo soij dsmioo broingli。”
[ghoti@pc~]$printf“%30s\n”| tr\-
------------------------------
[ghoti@pc~]$fmt-30从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 ~]$
[ghoti@pc~]$text=“dfgkjfd vonhsadoi djo asdoi sdojvdjkdo soij dsmioo broingli。”
[ghoti@pc~]$printf“%30s\n”| tr\-
------------------------------
[ghoti@pc ~]$fmt-30您的输入制表符是分隔的吗?是否希望输出是制表符分隔的,在折叠没有填充所有行时在顶部填充?您的示例看起来像Excel,而不是文本文件。您的输入制表符是分隔的吗?是否希望输出是制表符分隔的,在折叠没有填充所有行时在顶部填充?您的示例看起来像Excel,而不是文本文件。因此,对于整个任务,在Bash中,类似于而IFS=$'\t'读取a b;确实粘贴Hi-triplee…感谢这篇文章。我面临另一个问题…是否有任何方法在固定位置启动第二、第三…列值…我的输出如下…aaaaaa bbbbbbbb cc vvvvvvvvnkkkkkhkkkkk jbjgjExample…如果我有2列,第1列有1行值…第2列有3行值…当输出出来时,第1行可以,1个制表符分开。对于第2行,第3行的o/p回来时有一个制表符…因为第1列中没有值…第2列,第3列的对齐不好。有没有办法进行对齐。..? thanks@pkawar-从你的解释中,我不理解你的数据格式。你能提供更详细的信息吗,比如一个格式正确的示例?因此,对于整个任务,在Bash中,类似于的IFS=$'\t'读取a b;确实要粘贴Hi triplee…谢谢你的帖子。我面临着另一个问题…有没有办法开始第二、第三个任务。…列值位于固定位置…我的输出如下..aaaaaaaa bbbbbbbbb cc vvvvvvv nknkkkkk khkkkk jbjgjExample…如果我有2列,列1有1行值…列2有3行值…当输出出来时,第一行可以用1个制表符分隔。对于第二行,第三行o/p用一个制表符b确认…由于第1列中没有值…第2、3列的对齐不正常。是否有任何方法进行对齐。。。?thanks@pkawar-从你的解释中,我不理解你的数据格式。你能提供更多细节,比如正确格式的样本吗?