shell脚本,awk实现行列转换
[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实现行列转换的更多相关文章
- shell脚本 awk工具
awk工具概述awk编程语言/数据处理引擎基于模式匹配检查输入文本,逐行处理并输出通常在shell脚本中,或取指定的数据单独用时,可对文本数据做统计 命令格式格式一:awk [选项] '[条件]{编辑 ...
- shell脚本 awk实现实时监控网卡流量
一.简介 通过第3方工具获得网卡流量,这个大家一定很清楚.其实通过脚本一样可以实现效果.下面是我个人工作中整理的数据.以下是shell脚本统计网卡流量. 现原理: cat /proc/net/dev ...
- shell脚本——awk
目录 一.awk 1.1.awk简介 1.2.基本格式 1.3.工作原理 1.4.常见的内建变量(可直接用) 按字段输出文本 1.5.awk和getline 有重定向符 无重定向符 1.6.指定分隔符 ...
- shell脚本实现 视频格式转换 ffmpeg 实现视频转换
#!/bin/bash original=$1 echo $original # check whether file is exist # if $original de chang du wei ...
- 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 ...
- shell脚本 awk实现查看ip连接数
一.简介 处理文本,是awk的强项了. 无论性能已经速度都是让人惊叹! 二.使用 适用:centos6+ 语言:英文 注意:无 awk 'BEGIN{ while("netstat -an& ...
- Linux常用命令及shell脚本
一. 用户管理(添加用户.切换用户.删除用户) ~ ...
- Linux 文本行列转换
使用awk进行行列转换 假设有一个文件 test ,包含的数据遵循以下格式: 同一行数据,单词之间为1个空格" " 每一行都有同样多的数据,个数相同 处理命令: awk '{for ...
- 在 shell 脚本获取 ip、数字转换等网络操作
在 shell 脚本获取 ip.数字转换等网络操作 ip 和数字的相互转换 ip转换为数字 :: function ip2num() { local ip=$1 local a=$(echo $ip ...
随机推荐
- JavaScript之——对象Object(一)
1. 新建对象.删除和访问: (1).新建 var obj1 = {b: 2}; //对象文本表示法 var obj2 = new Object(); obj2.a = 1; (2).访问 //第一种 ...
- Unity动画事件
动画事件添加 var clip = new AnimationClip();//clip,动画剪辑 储存基于动画的关键帧.这里新建动画剪辑 clip.SetCurve ("", ...
- C#基础知识回顾
值类型和引用类型 值类型存在栈上,结构,枚举,数值类型 引用类型存在堆上,数组,类,接口,委托 把值类型存到引用类型中就是封箱,耗时 引用类型中的值类型是存在堆上,不是栈上,但是作为参数传递时,还是会 ...
- Unity2D研究院之自动生成动画、AnimationController、Prefab(一)
http://www.xuanyusong.com/archives/3243 国庆了,回家了.时刻还是要吃一颗学习的心,在家了也要抽出时间好好学习一下.之前MOMO一直没研究过Unity2D,今天研 ...
- Bloomberg Desktop Api 关于历史Tick数据的一些参考
使用WAPI命令可以看到当前BBG的Api情况. 目前2016年3月是V3的版本.其中有一个API Develper's Guide 中有Core Develper Guide的pdf, 里面提到了B ...
- [Xcode 实际操作]九、实用进阶-(13)调用相机并获取拍摄后的图片
目录:[Swift]Xcode实际操作 本文将演示如何调用相机并获取拍摄后的图片. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] import UIKit //首 ...
- 再回首数据结构—AVL树(二)
前面主要介绍了AVL的基本概念与结构,下面开始详细介绍AVL的实现细节: AVL树实现的关键点 AVL树与二叉搜索树结构类似,但又有些细微的区别,从上面AVL树的介绍我们知道它需要维护其左右节点平衡, ...
- [題解]BZOJ_1260_塗色
簡單的區間dp,結果竟然寫掛了......還掛的很徹底......狗屎 如果區間左右端點相等,那麼不需要在多花一次去刷,對 f [ i+1 ] [ j ],f [ i ] [ j-1 ]取個min, ...
- 23 在java中使用groovy类
1 在java中使用groovy类 1.1 直接调用groovy类 在java中调用Groovy类,需要增加Groovy运行时到java的classpath中. pom.xml < ...
- 如何在VirtualBox虚拟机中安装XP系统? 转
关闭VM (windows 7 )的方法, 使用 退出 保持状态 开启VM (windows 7 )的方法, 选择启动 ######Iissue 1 网络连接不上,可以重新初始化 网络连接. #### ...