[root@localhost study]# cat file
张三 语文
张三 数学
李四 语文
李四 数学
王五 语文
王五 数学
王五 英语 怎么实现为下面的排序??? 语文 数学 语文 数学 语文 数学 英语
张三 张三 李四 李四 王五 王五 王五 以下是思路分析: 张三 语文
张三 数学
李四 语文
李四 数学
王五 语文
王五 数学
王五 英语 for(i=;i<=NF;i++)a[NR,i]=$i
[NR i]=$i
a[,]=$i=$= a[,]=$i=$= a[,]=$i=$=
a[,]=$i=$= a[,]=$i=$= a[2.3]=$i=$=
a[,]=$i=$= a[,]=$i=$= a[,]=$i=$=
a[,]=$i=$= a[,]=$i=$= a[4.3]=$i=$=
a[,]=$i=$= a[,]=$i=$= a[,]=$i=$=
a[,]=$i=$= a[,]=$i=$= a[,]=$i=$=
a[,]=$i=$= a[,]=$i=$= a[,]=$i=$=
这些数组取值和上面一一对应 想要实现下面排序 语文 数学 语文 数学 语文 数学 英语
张三 张三 李四 李四 王五 王五 王五 那么他们对应的数组变量是:
a[,] a[2.3] a[,] a[4.3] a[,] a[,] a[7.3]
a[,] a[,] a[,] a[,] a[,] a[,] a[,]
a[,] a[,] a[,] a[,] a[,] a[,] a[,]
可以使用2个for循环控制好对应的数组下表,即可取出对应的值 for(i=NF;i>=;i--) 输出 i= (3>i>1) for(j=;j<=NR;j++) 输出 j= (<j<) 当i=3时j=,,,,,,
a[j,i]
输出
a[,] a[,] a[,] a[,] a[,] a[,] a[,] 当i=2时j=,,,,,,
a[j,i]
输出
a[,] a[,] a[,] a[,] a[,] a[,] a[,] 当i=2时j=,,,,,,
a[j,i]
输出
a[,] a[,] a[,] a[,] a[,] a[,] a[,] [root@localhost study]# cat file|awk '{for(i=1;i<=NF;i++)a[NR,i]=$i}END{for(i=NF;i>=1;i--){for(j=1;j<=NR;j++){printf a[j,i]" "}print xxoo}}' 语文 数学 语文 数学 语文 数学 英语
张三 张三 李四 李四 王五 王五 王五

shell脚本,awk实现行列转换的更多相关文章

  1. shell脚本 awk工具

    awk工具概述awk编程语言/数据处理引擎基于模式匹配检查输入文本,逐行处理并输出通常在shell脚本中,或取指定的数据单独用时,可对文本数据做统计 命令格式格式一:awk [选项] '[条件]{编辑 ...

  2. shell脚本 awk实现实时监控网卡流量

    一.简介 通过第3方工具获得网卡流量,这个大家一定很清楚.其实通过脚本一样可以实现效果.下面是我个人工作中整理的数据.以下是shell脚本统计网卡流量. 现原理: cat /proc/net/dev ...

  3. shell脚本——awk

    目录 一.awk 1.1.awk简介 1.2.基本格式 1.3.工作原理 1.4.常见的内建变量(可直接用) 按字段输出文本 1.5.awk和getline 有重定向符 无重定向符 1.6.指定分隔符 ...

  4. shell脚本实现 视频格式转换 ffmpeg 实现视频转换

    #!/bin/bash original=$1 echo $original # check whether file is exist # if $original de chang du wei ...

  5. shell脚本awk的基本用法

    AWK 1 AWK 2 3 linux取IP地址 4 5 ifconfig | grep -w inet | sed -n '1p' | awk '{print $2}' 6 7 eg: 8 9 aw ...

  6. shell脚本 awk实现查看ip连接数

    一.简介 处理文本,是awk的强项了. 无论性能已经速度都是让人惊叹! 二.使用 适用:centos6+ 语言:英文 注意:无 awk 'BEGIN{ while("netstat -an& ...

  7. Linux常用命令及shell脚本

    一.     用户管理(添加用户.切换用户.删除用户) ~                                                                        ...

  8. Linux 文本行列转换

    使用awk进行行列转换 假设有一个文件 test ,包含的数据遵循以下格式: 同一行数据,单词之间为1个空格" " 每一行都有同样多的数据,个数相同 处理命令: awk '{for ...

  9. 在 shell 脚本获取 ip、数字转换等网络操作

    在 shell 脚本获取 ip.数字转换等网络操作 ip 和数字的相互转换 ip转换为数字 :: function ip2num() { local ip=$1 local a=$(echo $ip ...

随机推荐

  1. Unable to load script from assets 'index.android.bundle'.Make sure your bundle is packaged correctly or you're running a packager server

    curl -k 'http://localhost:8081/index.android.bundle?platform=android' > android/app/src/main/asse ...

  2. hdu 6319 Problem A. Ascending Rating (2018 Multi-University Training Contest 3)

    #include <stdio.h> #include <iostream> #include <cstdlib> #include <cmath> # ...

  3. PostgreSQL - 用psql 运行SQL文件

    对于预先写好的SQL文件,比如/home/user1/updateMyData.sql, 可以有两种方式来运行这个SQL文件. 方式一:连接db后执行SQL文件 首先通过psql连接到对应的db: p ...

  4. 字符串匹配,KMP算法

    KMP的详解见:https://segmentfault.com/a/1190000008575379 主要难点在于Next数组的理解,KMP是不需要回溯的匹配算法. #include<iost ...

  5. [JSOI2015]染色游戏

    Description 棋盘是一个n×m的矩形,分成n行m列共n*m个小方格. 现在萌萌和南南有C种不同颜色的颜料,他们希望把棋盘用这些颜料染色,并满足以下规定: 1.棋盘的每一个小方格既可以染色(染 ...

  6. Gym - 101810H ACM International Collegiate Programming Contest (2018)

    bryce1010模板 http://codeforces.com/gym/101810 #include <bits/stdc++.h> using namespace std; #de ...

  7. PlSqlDev中执行INSERT SQL语句包含&符号导致数据异常

    在PLSQL Developer中执行Insert语句时提示如下信息: 当时未注意,直接点击OK按钮继续. 导入数据后查看发现部分数据中的参数丢失了一部分,呈以下规律: . 而正常应为: . 经询问大 ...

  8. mongodb-安装&配置&启动

    下载:https://www.mongodb.com/dr/fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.0.3.tgz/downloa ...

  9. centos下gitlab的简单安装配置

    一.安装前配置yum源 #wget https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh #s ...

  10. 关于在ARM MDK 中使用STM32F4xx 硬件浮点单元的话题

    http://mp.weixin.qq.com/s/CDyZ8v2kLiyuIBHf7iqEPA