Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
UNIX中字段宽度的格式化_Unix - Fatal编程技术网

UNIX中字段宽度的格式化

UNIX中字段宽度的格式化,unix,Unix,我有以下格式的数据: 我的主要问题是,我有一个文件,其字段/列中的数据太长 如果我只是简单地显示输出(通过命令filename.xls | awk-F“|”{print$1,$2,$3)),那么就看不到……而且读取起来非常复杂。 作为: FGHFHGHKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK

我有以下格式的数据:


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

如果我只是简单地显示输出(通过命令filename.xls | awk-F“|”{print$1,$2,$3)),那么就看不到……而且读取起来非常复杂。 作为: FGHFHGHKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK

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

谢谢

将…更新为ghotitripleee(如果不清楚,请缩放) 输入文件已被制表符删除

使用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-从你的解释中,我不理解你的数据格式。你能提供更多细节,比如正确格式的样本吗?