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
  • 相关阅读:
    洛谷 P1057 传球游戏
    BZOJ 1801: [Ahoi2009]chess 中国象棋
    BZOJ 1806: [Ioi2007]Miners 矿工配餐
    51nod 1276 岛屿的数量
    BZOJ 1800: [Ahoi2009]fly 飞行棋
    路由控制和视图层
    django的零碎注意点
    Django框架简介
    Bootstrap框架
    jQuery基础知识
  • 原文地址:https://www.cnblogs.com/liujiaxin2018/p/14663910.html
Copyright © 2011-2022 走看看