奇数行和偶数行合并
# 题目
将将一个文本的奇数行和偶数行合并
[root@summer ~]# cat johb.txt
11111111111111
22222222222222
33333333333333
44444444444444
55555555555555
1
2
3
4
5
6
2
3
4
5
6
# 解答
- N表示读取下一行,给sed处理,也就是sed同时处理2行
[root@summer ~]# sed 'N;s#\n# #g' johb.txt
11111111111111 22222222222222
33333333333333 44444444444444
55555555555555
1
2
3
4
2
3
4
- xargs默认使用的是空格为分隔符,通过-d指定新的分隔符,这里修改为\n回车换行 为分隔符。-n2表示以回车为换行符后,我要每行显示两列,也就是两行。
[root@summer ~]# xargs -d "\n" -n2 < johb.txt
11111111111111 22222222222222
33333333333333 44444444444444
55555555555555
1
2
3
4
2
3
4
- 当前行是奇数行时执行line=$0,将整行赋值给line,next跳过其余的命令
[root@summer ~]# awk 'NR%2==1{line=$0;next}{print line,$0}' johb.txt
11111111111111 22222222222222
33333333333333 44444444444444
1
2
3
2
3
- awk判断奇偶行并显示
[root@summer ~]# awk '{if(NR%2==0) print $0;else printf $0 " "}' johb.txt
11111111111111 22222222222222
33333333333333 44444444444444
55555555555555 [root@summer ~]#
1
2
3
4
2
3
4