awk文本处理--二维数组使用一例
群友出的题:
原始文件:
$ cat file
BJ30 26
BJ30 24
BJ30 63
BJ30 70
SH41 21
SH41 30
SH41 25
SH41 25
SH41 29
SD15 34
SD15 46
SD15 20
SD15 34
TJ20 23
TJ20 32
TJ20 31
TJ20 35
处理后结果:
BJ30 SH41 SD15 TJ20
26 21 34 23
24 30 46 32
63 25 20 31
70 25 34 35
29
代码如下:
awk '{if(!a[$1]++)b[++n]=$1;c[$1,a[$1]]=$2;if(m<a[$1])m=a[$1]}END{for(i=0;i++<n;)s=s?s"\t"b[i]:b[i];print s;s="";for(i=0;i++<m;){for(j=0;j++<n;){printf c[b[j],i]?c[b[j],i]"\t":"\t"}print ""}}' file
awk文本处理--二维数组使用一例的更多相关文章
- C 与 C++ 中 指向二维数组的指针进行指针运算
二维数组在概念上是二维的,有行和列,但在内存中所有的数组元素都是连续排列的,它们之间没有"缝隙".以下面的二维数组 nums 为例: 从概念上理解,nums 的分布像一个矩阵,但在 ...
- awk的二维数组
awk是不支持二维数组的,它的底层是一维数组,将两个key拼接为一维数组的key. 如下是其初始化和遍历 awk 'BEGIN{ for(i=0;i< 3; ++i) for(j = 0; j ...
- 如何利用shell或者awk二维数组实现9x9乘法表?
第一种:利用shell for循环来实现. for i in `seq 1 9`do for j in `seq 1 9` do if [ $i -ge $j ] then echo -en &quo ...
- C语言 文本字符串存入二维数组
字符串存入数组 文本内容: line1_1 line1_2line2_1 line2_2line3_1 line3_2line4_1 line4_2line5_1 line5_2line6_1 lin ...
- C++学习笔记之由文本文件读取数据到vector模板建立的二维数组 并存储为新的文本文件
阅读本文可首先参考: C++学习笔记之输入.输出和文件 测试数据: /*读取txt文件到二维数组*/ #include <iostream> #include <fstream> ...
- Excel 二维数组(数据块)旋转/翻转技巧
Excel 二维数组(数据块)旋转/翻转技巧 原创 2017-12-30 久石六 久石六 工作中遇到个问题,需要将Excel中的数据块或者说二维数组向右旋转90度,才能再加工处理.当然,不是旋转文本方 ...
- jQuery写省级联动列表,创造二维数组,以及如何存/调用二维数组中的数据
jQuery写省级联动列表,创造二维数组来存放数据,然后通过each来遍历调用,通过creatTxtNode创建文本节点,通过createElement创建标签option,在通过append将文本写 ...
- php上传excle文件,csv文件解析为二维数组
解析上传的CSV文件不是什么难事,直接读取转成你想要的数组样子就OK了. public function putStoreStockIn ($filePath = '') { $file = fope ...
- Java 二维数组及方法概况
数组 数组是指一组数据的集合,数组中的每个数据被称作元素.在数组中可以存放任意类型的元素,但同一个数组里存放的元素类型必须一致. 数组的定义 在Java中,可以使用以下格式来定义一个数组. 数据类型[ ...
随机推荐
- Java基础知识强化07:打印出空心菱形
1.如图打印出空心菱形: 2.下面是逻辑实现代码: package himi.hebao04; import java.util.Scanner; public class TestDemo08 { ...
- HDU 4288 Coder(线段树)
题意: 给定三种操作 1. add x 向序列中添加x,添加之后序列还保持有序 2. del x 删除序列中值为x的元素 3. sum 求下边模5等于3的元素和 思路: 直接暴力也可以过,就是看暴 ...
- CSS3新增Hsl、Hsla、Rgba色彩模式以及透明属性(转)
CSS2中色彩模式只有RGB色彩模式(RGB即RED.Green.BLue)和十六进制(Hex)模式,为了能支持 透明opacity 的Alpha值,CSS3又增加了RGBA色彩模式(RGBA即RED ...
- Android 通信机制Message、Handler 的用法
Android中提供了通信机制,Message.Handler 等,Message用于在子线程中传递数据,Handler用于发送数据到主线程中, 下面介绍基于Message.Handler的计时器 i ...
- 记一次网站服务器迁移(my)
遇到的难题: 基本没有遇到太大的问题,因为服务器环境是配好的阿里云环境,最后再nginx的rewrite配置遇到了一点问题,最后也算解决. 收获小点: 1) vim替换命令: 利用 :s 命令可以实现 ...
- oracle批量导入数据
关键代码 OracleDataAdapter da=new OracleDataAdapter(); string sql_select = string.Format("select id ...
- JavaScript HTML DOM - 改变 HTML
JavaScript HTML DOM - 改变 HTML HTML DOM 允许 JavaScript 改变 HTML 元素的内容. 改变 HTML 输出流 JavaScript 能够创建动态的 H ...
- C++中extern关键字使用(转)
参考文章:http://blog.csdn.net/sruru/article/details/7951019 chapter1.如何混合编译C语言和C++ 实际开发过程中,C++中会调用C与语言编写 ...
- Android开发系列----学习伊始
因为对移动端开发开始感兴趣,开始学习App开发,没有苹果环境的我,只好先选择Android来玩一玩了~~ 找了一套视频,买了几本java.android开发的书,开始搞起~~
- TortoiseSVN显示图标不正常
Windows Explorer Shell支持的Overlay Icon最多15个,除去系统使用,只有11个.如果其他程序占用了,那么乌龟SVN就无法显示了.注册表定位到:HKEY_LOCAL_MA ...