zoukankan      html  css  js  c++  java
  • linux系统中将一列数据转换为指定的行

    1、按行排列

    [root@centos7 test]# cat a.txt
    01
    02
    03
    04
    05
    06
    07
    08
    09
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    [root@centos7 test]# cat a.txt | xargs -n 4
    01 02 03 04
    05 06 07 08
    09 10 11 12
    13 14 15 16
    17 18 19 20
    [root@centos7 test]# cat a.txt
    01
    02
    03
    04
    05
    06
    07
    08
    09
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    [root@centos7 test]# awk '{if(NR % 4 == 0) {print $0} else {printf("%s ", $0)}}' a.txt
    01 02 03 04
    05 06 07 08
    09 10 11 12
    13 14 15 16
    17 18 19 20
    [root@centos7 test]# cat a.txt
    01
    02
    03
    04
    05
    06
    07
    08
    09
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    [root@centos7 test]# awk '{if(NR % 4 != 0) ORS = " "; else ORS = "\n"; print}' a.txt
    01 02 03 04
    05 06 07 08
    09 10 11 12
    13 14 15 16
    17 18 19 20

    2、按列排列

    [root@centos7 test]# cat a.txt
    01
    02
    03
    04
    05
    06
    07
    08
    09
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    [root@centos7 test]# cat a.txt | xargs -n 5 > tmp
    [root@centos7 test]# cat tmp
    01 02 03 04 05
    06 07 08 09 10
    11 12 13 14 15
    16 17 18 19 20
    [root@centos7 test]# for i in `seq $(head -n 1 tmp|awk '{print NF}')`; do cut -d " " -f $i tmp | tr "\n" " "| sed '$ s/$/\n/' >> b.txt; done
    [root@centos7 test]# cat b.txt
    01 06 11 16
    02 07 12 17
    03 08 13 18
    04 09 14 19
    05 10 15 20
    [root@centos7 test]# cat a.txt
    01
    02
    03
    04
    05
    06
    07
    08
    09
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    [root@centos7 test]# awk '{if(NR % 5 == 0) {print $0} else {printf("%s ", $0)}}' a.txt > tmp
    [root@centos7 test]# cat tmp
    01 02 03 04 05
    06 07 08 09 10
    11 12 13 14 15
    16 17 18 19 20
    [root@centos7 test]# for i in `seq $(head -n 1 tmp | awk '{print NF}')`; do awk -v a=$i '{print $a}' tmp | awk BEGIN{RS=EOF}'{gsub("\n"," ");print}' >> c.txt;done
    [root@centos7 test]# cat c.txt
    01 06 11 16
    02 07 12 17
    03 08 13 18
    04 09 14 19
    05 10 15 20
  • 相关阅读:
    ASCII,Unicode,UTF
    C#值类型和引用类型2
    C#中使用Foreach
    CSS基础(2)
    CSS基础
    HTML基础
    MySQL高级
    MySQL和Python交互案例练习(2)
    MySQL和Python交互案例练习(1)
    外键SQL语句的编写
  • 原文地址:https://www.cnblogs.com/liujiaxin2018/p/14663910.html
Copyright © 2011-2022 走看看