
awk
iteye_18070
这个作者很懒,什么都没留下…
展开
-
shell 中遍历文件的效果比较
假设我们有一个数据文件形如下: A,B A,C A,D B,E B,F D,A D,B E,G .... 需求是要将其转变为如下形式: A:B,C,D B:E,F D:A,B E,G ...... 需求很简单,循环遍历文件,然后trace第一列即可。 在这里,我们讨论用Shell脚本如何实现这个简单的需求。 在shell中面对这样...2011-12-09 10:30:07 · 217 阅读 · 0 评论 -
一个千万级数据的统计方法尝试
现在,我们有一个文件,样子长成这个样子的: 该数据共有两列数据,col1,col2.col1是字符串类型的,col2为数字类型。这样的数据一共有多少呢? 一共有:25165824。 现在我们的目标是统计col1中每个值出现的次数,并把对应的col2的值加起来,并且得到平均值。 这样是放在关系数据库里,用SQL的话,十分容易搞定,SQL如下: select col1...2011-08-21 22:31:10 · 1172 阅读 · 0 评论 -
两种检查数据重复性的方法
我们在ETL测试过程中经常甚至是必须要检测某一批数据中的某些维度在表范围内是否重复。 本文就介绍两种检测数据重复的简单方法。 方法1: SQL法 如果这些数据在数据库中,那完全简单而且OK。具体方法为: select (sum(c)-count(c)) uniq from ( select count(1) c from table_t...2011-09-02 12:39:20 · 4092 阅读 · 0 评论 -
简单比较Linux命令中字符串查找的效率
有时候,我们要简单统计下一个文件中包含某个特殊字符串的行数。 我第一个想到的是grep + wc,不知道你想到了什么,不过,我们确实有多种方法。 假如我们的文件叫msg,里面有23380092行数据。 某些行是这样的receive: msg1 我们的任务是找出这些行的数量。 1. grep方法 grep ' msg1' msg | wc -l 使用这种方法耗时: 1s ...2011-11-21 21:43:00 · 525 阅读 · 0 评论 -
使用awk和grep进行数据抽样比较
在进行数据抽样时,我们关注所抽取的数据在整体数据中分布的均匀性。 最简单的就是均匀抽取,即每隔几行选取一行。 比如,数据文件较大时,每隔10行或者每隔100行进行抽取。 假如数据文件还是“msg” 我们每隔10行取一行,有两种方法: 方法1:nl+grep nl msg | grep -P '1\t' > target_file 方法2:awk ...2011-11-21 22:11:36 · 515 阅读 · 0 评论 -
Shell下三种遍历文件的方法比较
昨天一个同事遇到一个需求: 有一个日志文件A,当日志文件中的某行包含某个字符串BC时,将字符串EF变成EG,并输出到新文件。即: Input,A: asdfasdf asdfasdBCasdfEFasd output: asdfasdf asdfasdBCasdfEGasd 这个文件有500w+行。 最开始用如下脚本解决: cat $1 | while re...2012-03-15 20:06:28 · 535 阅读 · 0 评论