liujiaxin2018

1、创建测试数据

利用awk进行合并(1)

[root@linuxprobe test2]# seq -w 30 | xargs -n 2 | sed = | sed \'N;s/\n/> /\' > a.txt ##创建测试数据
[root@linuxprobe test2]# cat a.txt
1> 01 02
2> 03 04
3> 05 06
4> 07 08
5> 09 10
6> 11 12
7> 13 14
8> 15 16
9> 17 18
10> 19 20
11> 21 22
12> 23 24
13> 25 26
14> 27 28
15> 29 30
[root@linuxprobe test2]# awk \'{if (NR%2==0){print $0} else {printf "%s ",$0}}\' a.txt  ## 每两行合并为一行
1> 01 02 2> 03 04
3> 05 06 4> 07 08
5> 09 10 6> 11 12
7> 13 14 8> 15 16
9> 17 18 10> 19 20
11> 21 22 12> 23 24
13> 25 26 14> 27 28
15> 29 30 [root@linuxprobe test2]# awk \'{if (NR%2==0){print $0} else {printf "%s ",$0}}\' a.txt | sed \'$ s/$/\n/\' ## 没两行合并为一行
1> 01 02 2> 03 04
3> 05 06 4> 07 08
5> 09 10 6> 11 12
7> 13 14 8> 15 16
9> 17 18 10> 19 20
11> 21 22 12> 23 24
13> 25 26 14> 27 28
15> 29 30
[root@linuxprobe test2]# awk \'{if (NR%3==0){print $0} else {printf "%s ",$0}}\' a.txt | sed \'$ s/$/\n/\'  ##三行合并
1> 01 02 2> 03 04 3> 05 06
4> 07 08 5> 09 10 6> 11 12
7> 13 14 8> 15 16 9> 17 18
10> 19 20 11> 21 22 12> 23 24
13> 25 26 14> 27 28 15> 29 30

[root@linuxprobe test2]# awk \'{if (NR%4==0){print $0} else {printf "%s ",$0}}\' a.txt | sed \'$ s/$/\n/\'  ##四行合并
1> 01 02 2> 03 04 3> 05 06 4> 07 08 
5> 09 10 6> 11 12 7> 13 14 8> 15 16
9> 17 18 10> 19 20 11> 21 22 12> 23 24
13> 25 26 14> 27 28 15> 29 30

 

利用awk进行合并(2)

[root@linuxprobe test2]# cat a.txt
1> 01 02
2> 03 04
3> 05 06
4> 07 08
5> 09 10
6> 11 12
7> 13 14
8> 15 16
9> 17 18
10> 19 20
11> 21 22
12> 23 24
13> 25 26
14> 27 28
15> 29 30
[root@linuxprobe test2]# awk \'{if(NR%2!=0) ORS=" "; else ORS="\n";print}\' a.txt  ## 两行合并
1> 01 02 2> 03 04
3> 05 06 4> 07 08
5> 09 10 6> 11 12
7> 13 14 8> 15 16
9> 17 18 10> 19 20
11> 21 22 12> 23 24
13> 25 26 14> 27 28
15> 29 30 [root@linuxprobe test2]# awk \'{if(NR%2!=0) ORS=" "; else ORS="\n";print}\' a.txt | sed \'$ s/$/\n/\'
1> 01 02 2> 03 04
3> 05 06 4> 07 08
5> 09 10 6> 11 12
7> 13 14 8> 15 16
9> 17 18 10> 19 20
11> 21 22 12> 23 24
13> 25 26 14> 27 28
15> 29 30
[root@linuxprobe test2]# awk \'{if(NR%3!=0) ORS=" "; else ORS="\n";print}\' a.txt | sed \'$ s/$/\n/\' ## 末尾多了空行??
1> 01 02 2> 03 04 3> 05 06
4> 07 08 5> 09 10 6> 11 12
7> 13 14 8> 15 16 9> 17 18
10> 19 20 11> 21 22 12> 23 24
13> 25 26 14> 27 28 15> 29 30

[root@linuxprobe test2]# awk \'{if(NR%4!=0) ORS=" "; else ORS="\n";print}\' a.txt | sed \'$ s/$/\n/\'  ## 四行合并
1> 01 02 2> 03 04 3> 05 06 4> 07 08
5> 09 10 6> 11 12 7> 13 14 8> 15 16
9> 17 18 10> 19 20 11> 21 22 12> 23 24
13> 25 26 14> 27 28 15> 29 30

 参考:https://www.cnblogs.com/Ghost-bird/p/11591861.html

分类:

技术点:

相关文章:

  • 2021-12-17
  • 2022-12-23
  • 2021-12-17
  • 2022-12-23
  • 2022-12-23
  • 2021-12-17
猜你喜欢
  • 2022-12-23
  • 2022-02-25
  • 2021-07-08
  • 2022-12-23
  • 2022-12-23
  • 2021-12-17
相关资源
相似解决方案