如何将 3 行文本一次显示到 1 行上?

如何将 3 行文本一次显示到 1 行上?

我有一个日志文件,一次显示 3 行数据。像这样:

1 data   
2 data   
3 data   
1 data   
2 data   
3 data   
1 data   
2 data   
3 data

我想将每 3 行显示在 1 行上,如下所示:

1 data 2 data 3 data  
1 data 2 data 3 data  
1 data 2 data 3 data

我希望能够捕获这个文件,然后通过一个命令来传输它,该命令将为我完成此操作。我怀疑 sed 或 awk 是一个解决方案。

答案1

您也许可以使用paste

$ paste - - - <data.txt
1 data      2 data      3 data   
1 data      2 data      3 data   
1 data      2 data      3 data

答案2

这是一种方法:

$ perl -pe 's/\n/ / unless $. % 3 == 0' file 
1 data    2 data    3 data   
1 data    2 data    3 data   
1 data    2 data    3 data

答案3

或者也可以sed通过“N”omming 两行,然后在生成的缓冲区中取消换行符。

sed 'N;N;s/\n/ /g'

相关内容