我有一个日志文件,一次显示 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'