Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.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
Sorting 如何在一列中打印3行?_Sorting_Awk_Sed_Paste_Cut - Fatal编程技术网

Sorting 如何在一列中打印3行?

Sorting 如何在一列中打印3行?,sorting,awk,sed,paste,cut,Sorting,Awk,Sed,Paste,Cut,我有一个像下面这样的文件 ab13p29im-sss29511 0 Jan 12 22:43 ab13p29im-sss29531 0 Jan 12 22:43 ab13p29im-sss29512 0 Feb 2 16:11 ab13p29im-sss29522 0 Feb 2 16:12 ab13p29im-sss29532 0 Feb 2 16:12 ab21p30im-sss30511 0 Jan 12 22:43 ab21p30im-sss30531 0 Jan 12 22:43 ab

我有一个像下面这样的文件

ab13p29im-sss29511
0
Jan 12 22:43
ab13p29im-sss29531
0
Jan 12 22:43
ab13p29im-sss29512
0
Feb 2 16:11
ab13p29im-sss29522
0
Feb 2 16:12
ab13p29im-sss29532
0
Feb 2 16:12
ab21p30im-sss30511
0
Jan 12 22:43
ab21p30im-sss30531
0
Jan 12 22:43
ab21p30im-sss30512
0
Feb 2 16:13
ab21p30im-sss30522
3
Feb 2 16:12
我想打印这是下面的格式

ab13p29im-sss29511 0 Jan 12 22:43
ab21p30im-sss30522 0 Feb 2 16:12 
ab21p30im-sss30531 0 Jan 12 22:43
我使用的是命令
paste----
。但是如果其中任何一个值为null,格式就会像下面那样混乱

ab13p29im-sss29511 0 Jan 12 22:43

ab21p30im-sss30522 0 ab21p30im-sss30531 

0 Jan 12 22:43  ab21p30im-sss30523. 

比如,如果任何主机都没有日期,或者任何值都为null,那么它将打破3,3,3模式

您喜欢这样的一些:

awk 'ORS=NR%3?" ":RS' file
ab13p29im-sss29511 0 Jan 12 22:43
ab13p29im-sss29531 0 Jan 12 22:43
ab13p29im-sss29512 0 Feb 2 16:11
ab13p29im-sss29522 0 Feb 2 16:12
ab13p29im-sss29532 0 Feb 2 16:12
ab21p30im-sss30511 0 Jan 12 22:43
ab21p30im-sss30531 0 Jan 12 22:43
ab21p30im-sss30512 0 Feb 2 16:13
ab21p30im-sss30522 3 Feb 2 16:12

通过使用
awk
命令和显式连接:

$ awk 'NR % 3 == 1 { lines=$0 ; next } { lines=lines" "$0 } NR % 3 == 0 { print lines ; lines="" }' file
ab13p29im-sss29511 0 Jan 12 22:43
ab13p29im-sss29531 0 Jan 12 22:43
ab13p29im-sss29512 0 Feb 2 16:11
ab13p29im-sss29522 0 Feb 2 16:12
ab13p29im-sss29532 0 Feb 2 16:12
ab21p30im-sss30511 0 Jan 12 22:43
ab21p30im-sss30531 0 Jan 12 22:43
ab21p30im-sss30512 0 Feb 2 16:13
ab21p30im-sss30522 3 Feb 2 16:12
加载2行,在打印前删除新行,然后循环


您可以通过放置模式检查来启动循环,如
/[a-b0-9]\{9\}-[a-b0-9]\{8\}/!d在第一次
N

之前,你能举例说明什么地方出错了吗。在文章中也使用代码标签。编辑时选择文本并单击此按钮
{}
“我有一个问题”“这里有一些数据不能说明我的问题”“帮助我解决我的问题”。这样写是没有意义的,是吗?编辑您的问题,以显示显示您希望我们帮助您解决的问题的数据。谢谢,但这里的问题是,如果没有主机名的日期,所有格式都将混乱。例如,如果3列中的任何值为空,则格式变差。然后,您是否可以更新您的帖子并给出出错数据的示例。空值是指该行丢失,因此它打破了3,3,3行模式?
sed 'N;N;s/\n/ /g' YourFile