shell脚本,awk实现行列转换
2024-09-30 06:02:52
[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}}' 语文 数学 语文 数学 语文 数学 英语
张三 张三 李四 李四 王五 王五 王五
最新文章
- Linux内核模块开发基础【转】
- XCode与Git的完美融合,不再依赖其它Git客户端
- Discuz X2任务开发
- webstorm配置scss自动编译路径
- iOS开发数据库篇—SQL代码应用示例
- SQL SERVER 批量插入记录
- 转:主流数据恢复软件——EasyRecovery/Ashampoo Undeleter/Wise Data Recovery/Recuva/Undelete 360
- 如何弹出一定的大小的web窗体?
- java抽象类的使用
- 数据字典系统,要的进来下载吧,MVC+Easyui写的
- Java知识总结--CoreJava
- Top 20 JavaScript Projects of 2017
- Android弹幕功能实现,模仿斗鱼直播的弹幕效果
- 了解mysqlpump工具
- 如何在FineUIMvc(ASP.NET MVC)中显示复杂的表格列数据(列表和对象)?
- Go-延时函数defer
- POJ 3481 Double Queue
- net core体系-2继续认识net core
- c++检查内存泄漏
- 随机x到x之间的值