记一次数据处理的过程

由于所在公司是主要做短信行业,平时和手机号码打交道较多,各种奇葩需求也比较多,近期接到一个一个总监的奇葩需求,就是将两个文件中相同的手机号码弄处理,由于编程水平以及excel玩的有限,所以只能自己想其他额办法解决,首先每个文件有好几个字段,不过全是结构化数据,格式如下:

15994710001,2016/11/3 0:24,53100010
15994710001,2016/11/3 0:24,53100010
15001313373,2016/11/3 3:39,53100010
13937713309,2016/11/3 6:16,53100010
13758943333,2016/11/3 7:19,53100010
13868044333,2016/11/3 8:33,53100010
13500732333,2016/11/3 10:29,53100010
13523072333,2016/11/3 10:30,53100010
15138132777,2016/11/3 10:31,53100010
13960985779,2016/11/3 10:45,53100010
此文件有4000多行,
文件2 字段比较多,恰好一部分内容乱码,所以也算保护个人隐私吧。
"311-SD10658"2114781676479382330","13703774555","11λP50rit","1","2016/11/3 10:07:43","2016/11/3 10:07:41","0","DELIVRD"
"311-SD10658"2114781676479382330","15920510111","11λP50rit","1","2016/11/3 10:07:43","2016/11/3 10:07:41","0","DELIVRD"
"311-SD10658"2114781676479382330","18319609333","11λP50rit","1","2016/11/3 10:07:43","2016/11/3 10:07:41","0","DELIVRD"
"311-SD10658"2114781676479382330","15221090555","11λP50rit","1","2016/11/3 10:07:43","2016/11/3 10:07:41","0","DELIVRD"
"311-SD10658"2114781676479382330","13905879555","11λP50rit","1","2016/11/3 10:07:43","2016/11/3 10:07:41","0","DELIVRD"
"311-SD10658"2114781676479382330","13818586777","11λP50rit","1","2016/11/3 10:07:43","2016/11/3 10:07:41","0","DELIVRD"
"311-SD10658"2114781676479382330","13916387773","11λP50rit","1","2016/11/3 10:07:43","2016/11/3 10:07:41","0","DELIVRD"
"311-SD10658"2114781676479382330","13882133333","11λP50rit","1","2016/11/3 10:07:43","2016/11/3 10:07:41","0","DELIVRD"
"311-SD10658"2114781676479382330","18200980999","11λP50rit","1","2016/11/3 10:07:43","2016/11/3 10:07:41","0","DELIVRD"

处理的思路:

由于只是要相同的号码,所以就在linux下用一些文本处理工具对其处理,先将其处理成只含手机号码的文件,然后再做其他的处理

可以用cut或者awk截取相关的列,但是由于awk不是太熟悉,这里就使用cut截取,注意分隔符以及相关的第几列就可以。

然后可以用grep  比较,也试过diff,但是效果

1、统计两个文本文件的相同行

grep -Ff file1 file2

2、统计file2中有,file1中没有的行 比较两个不同的行

grep  -vFf  file2 file1

时间: 2024-08-08 06:22:57

记一次数据处理的过程的相关文章

火焰图--记一次cpu降温过程

正值周末,娃儿6:30又如闹铃般准时来叫醒了我们.年前离开美菜,又回到了杭州.原本是想有更多时间陪伴娃儿,然而新的工作节奏与工作地点,让我们每天都是早上见面:这不,为了周末可以多玩一会儿,早早就过来唤醒我们.因为前几天我们就约好了周末一起放风筝.有些事儿,我以为只是随口一说,小孩子确真真的记着. 吃过早饭,拉着媳妇儿,领着娃,带上风筝就出门了.其实我是忐忑的,因为我也从来没有把风筝放起来过.来到草坪上,娃就拉着风筝如脱缰之马跑了起来.小孩子的幸福就这么简单,无关乎风筝能飞多高. 迎着暖暖朝阳,吹

ORA-01157,记一次Oracle故障恢复过程

生产环境中有两台部署PowerCenter的ETL业务机,近期发现无法通过客户端连接到ETL服务. 初步怀疑是PowerCenter挂掉了,或者资料库出现了故障. 登陆设备后发现PowerCenter进程存在,但是资料库(Oracle)却挂掉了. 切换oracle账户进入,手动startup资料库,结果启动时报错:ORA-01157,ORA-01110.看报文说明是无法锁定或识别数据文件. 退出sqlplus,发现数据文件存在,猜测可能是故障造成的数据文件损坏,因为是NOARCHIVELOG(非

记客户端请求超时分析过程

请求处理过程描述 服务端 使用 框架 加载 业务so,并未业务so创建协程处理,处理完成后给出 响应.so入口函数接收(const Type&in, Type &out,Type &extend),是否给出响应的前提是 out里面要有 业务so的处理结果,即 out 不能是空的.这样处理的 原因是 有些客户端 只关心 消息是否被服务端收到,不关心处理结果,这时 服务端在收到 请求后 直接发送响应告诉 客户端 收到消息了, 而服务端业务so处理 完消息后 置out为空,就不会再次向同

记一次zabbix排错过程

zabbix用了也有一段时间,基本上大大小小的报错都接触过.我个人有个习惯,偶尔会去tail -f 一下zabbix_server的日志,可能是强迫症的关系,不喜欢看到日志有任何报错信息. 本来10.1应该放假,但是临回家前一天的时候是突然发现日志中频繁曝出以下这条报错. zabbix_server [4615]: ERROR [file:json.c,line:714] Something impossible has just happened. zabbix_server [4615]:

记一次提权过程

太久都没有看菜刀上的webshell,之前拿的都被删的差不多了,所以决定把手上的一些站都提权.菜鸟拿一个shell不简单阿. 这都是一些简单的提权,大牛可飞过. 把大马上传上去后,稍微看了下,ASP,PHP,ASPX都是支持的,不过wscript.shell组件是已经关闭的了.那么就用PHP的来提权吧. 翻了一下网站里面的文件,找到了一个数据库链接文件,竟然还是root用户,那自然就是用mysql来提权了. 上传大马,看看root的权限有没有被限制. 还是可以跨目录来访问其他文件的,说明root

记一次RackTables安装过程

1.安装lamp环境 yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-develglibcglibc-devel glib2 lib2-devel bzip2 bzip2-devel ncursesncurses-devel curl curl-devel e2fsprogs e

记一次DG搭建过程中ORA-09925: Unable to createaudit trail file 错误

今天做Oracle DG  编写initorcl的时候,修改完以后,sqlplus就不能再登陆,一直报 ERROR: ORA-09925: Unable to createaudit trail file Linux Error: 2: No such file ordirectory Additional information:9925 ORA-01075: you are currentlylogged on 一直找不到原因,后来在网上偶然找到个帖子说了这样一个情况,试了下,果然有效 [o

记一次DG搭建过程中备库ORA-00210,ORA-00202,ORA-27086错误

ORA-00210: cannot open the specified control file ORA-00202: control file: '/u01/app/oracle/oradata/orcl/control01.ctl' ORA-27086: unable to lock file - already in use 思路: 1.看一下"lk" and "sgadef.dbf"这两个文件是不是存在着,如果存在将其删掉: 2.看是不是有后台进程存在:

记一次LVM扩容过程

新增一块硬盘: fdisk -l fdisk /dev/sdb 先p查看 再n新建 现t转换     转换成8e(lvm) 再w写入     写入硬盘 partx /dev/sdb1 应用 pv vg lv 先用 pvdisplay pvsan pvcreate /dev/sdb1 vgdisplay vgextend VolGroup /dev/sdb1 lvextend -L +8G /dev/VolGroup-lv_root lvextend -l +100%FREE /dev/VolGr