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 ...
随机推荐
- 如何实现一个无边框Form的移动和改变大小(一)
很多时候我们不希望使用Windows提供的窗体. 我们希望使用一个无边框的窗体,什么border,caption透明就行了. 下面我们来说下一些实现方法. 这个方法要求窗体自定义的border siz ...
- uoj#266. 【清华集训2016】Alice和Bob又在玩游戏(博弈论)
传送门 完了我连sg函数是个啥都快忘了 设\(sg[u]\)为以\(u\)为根节点的子树的\(sg\)函数值,\(rem[u]\)表示\(u\)到根节点的路径删掉之后剩下的游戏的异或值 根节点\(u\ ...
- Response.Redirect 产生的“正在中止线程”错误
Response.Redirect 产生的“正在中止线程”错误 今天在开发调试过程中,出现在一个 "正在中止线程"异常信息. 调用Response.Redirect()方法产生的, ...
- SpringBoot | idea新建项目
1.new ----> Spring Initializr 2.设置相应文件名 3.选择需要配置
- scrapy框架中Item Pipeline用法
scrapy框架中item pipeline用法 当Item 在Spider中被收集之后,就会被传递到Item Pipeline中进行处理 每个item pipeline组件是实现了简单的方法的pyt ...
- 转 载python数据分析(1)-numpy产生随机数
转自:http://blog.csdn.net/jinxiaonian11/article/details/53143141 在数据分析中,数据的获取是第一步,numpy.random 模块提供了非常 ...
- 119 Pascal's Triangle II 帕斯卡三角形 II Pascal's Triangle II
给定一个索引 k,返回帕斯卡三角形(杨辉三角)的第 k 行.例如,给定 k = 3,则返回 [1, 3, 3, 1].注:你可以优化你的算法到 O(k) 的空间复杂度吗?详见:https://leet ...
- Azkaban是什么?(一)
不多说,直接上干货! http://www.cnblogs.com/zlslch/category/938837.html Azkaban是什么? Azkaban是一套简单的任务调度服务,整体包括三 ...
- 牛客网Java刷题知识点之什么是cookie、什么是session、cookie和session有什么区别
不多说,直接上干货! https://www.nowcoder.com/ta/review-java/review?tpId=31&tqId=21170&query=&asc= ...
- 创建对象js.
JavaScript中的基本书记类型. Number(数值类型) String(字符串类型) boolean(布尔类型) null(空类型) undefined(未定义类型) object 常见的内置 ...