使用awk命令将文本中每隔几行内容合并为一行

- linux系统管理

如题所示,将文本中每几行内容空格分隔合并为一行。

示例文档

[root@imzcy ~]# cat test.txt
zhangsan
18
lisi
20
wangwu
21
[root@imzcy ~]# 


每两行内容空格分隔合并为一行

如果行号NR除以2的余数不等于0则分隔符为空格,否则分隔符为换行符。

[root@imzcy ~]# cat test.txt |awk '{if(NR%2!=0)ORS=" ";else ORS="\n"}1' 
zhangsan 18
lisi 20
wangwu 21
[root@imzcy ~]# 


另一种写法

[root@imzcy ~]# cat test.txt |awk '{if(NR%2!=0)ORS=" ";else ORS="\n";print}' 
zhangsan 18
lisi 20
wangwu 21
[root@imzcy ~]#