zoukankan      html  css  js  c++  java
  • linux系统中将指定数目行合并为一行

    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

  • 相关阅读:
    关于stm32的iic为什么不稳定的讨论
    Android NDK 开发:CMake 使用
    比特币相关
    下载Wistia视频
    C#反射调用 异常信息:Ambiguous match found.
    c++ __super关键字
    开源:AspNetCore 应用程序热更新升级工具(全网第一份公开的解决方案)
    Laravel 生产环境部署,phphub5应用部署记录
    嵌入式系统中的几种文件系统的比较和优缺点(CRAMFS JFFS2 YAFFS2 Initrd SquashFS EXT4)【转】
    【MAT-MemoryAnalyzer】MemoryAnalyzer打开hprof文件报错An internal error occurred during: "Parsing heap dump from
  • 原文地址:https://www.cnblogs.com/liujiaxin2018/p/13773550.html
Copyright © 2011-2022 走看看