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 ...
随机推荐
- CodeForces 363D 【二分+贪心】
思路: 一开始是没有办法贪心的,但是答案是可以二分的,因为窝能买k辆车的话,窝就一定能买k-1辆车:而且我最好就是拿手上钱较多的那些人去买价格便宜的车,这样肯定是能买到最多的车,而且花的少,因为对于要 ...
- Android NDK开发指南(二)Android.mk文件
http://www.cnblogs.com/yaozhongxiao/archive/2012/03/06/2382225.html 1. 概述 Android.mk文件是用来描述build sy ...
- bzoj 2007: [Noi2010]海拔【最小割+dijskstra】
上来就跑3e5的最大流--脑子抽了 很容易看出,每个地方的海拔都是0或1因为再高了没有意义,又,上去下来再上去没有意义,所以最后一定是从s连着一片0,剩下连着t一片1,然后有贡献的就是01交接的那些边 ...
- 2014-5-24 NOIP模拟赛
Problem 1 护花(flower.cpp/c/pas) [题目描述] 约翰留下他的N(N<=100000)只奶牛上山采木.他离开的时候,她们像往常一样悠闲地在草场里吃草.可是,当他回来的时 ...
- 2014-5-10 NOIP模拟赛 by coolyangzc
Problem 1 机器人(robot.cpp/c/pas) [题目描述] 早苗入手了最新的Gundam模型.最新款自然有着与以往不同的功能,那就是它能够自动行走,厉害吧. 早苗的新模型可以按照输入的 ...
- [Xcode 实际操作]九、实用进阶-(18)图像人脸识别:对图片中的人像进行面部检测
目录:[Swift]Xcode实际操作 本文将演示对图片中的人像,进行面部检测. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] import UIKit //导入 ...
- Mybatis源码解读-设计模式总结
虽然我们都知道有26个设计模式,但是大多停留在概念层面,真实开发中很少遇到,Mybatis源码中使用了大量的设计模式,阅读源码并观察设计模式在其中的应用,能够更深入的理解设计模式. Mybatis至少 ...
- AttributedString 图片间距问题
1.NSMutableAttributedString如何显示图片 NSMutableAttributedString *vipStr = [[NSMutableAttributedString al ...
- [题解](组合数/二位前缀和)luogu_P2822组合数问题
首先要知道C(n,m)=C(n-1,m)+C(n-1,m-1),这样显然是一个杨辉三角,这样大部分的问题就解决了, 那么判能否整除只需要杨辉三角对k取模即可, 而对于多组数据的k都是一样的,所以用前缀 ...
- flask_之参数传递
参数篇 request接收数据 request对象 method:当前请求方法(POST,GET等) url:当前链接地址 path:当前链接的路径 environ:潜在的WSGI环境 headers ...