数据巧处理:重复数据的合并处理

要处理一批数据,形式为:
lat,lon,num
每个文件有一个timestamp,文件数量巨大,开始我感觉lat、lat应该唯一,但后来检查数据后发现,这批数据存在大量重复的点(可能之前高精度数据是唯一的,但精度降低后导致有重复数据出现),因此需要专门处理。
开始是想在bash里直接处理,但点位相同的数据,其后的num感觉应该sum后替换,因此还没有想到较好的方法。
后来一想数据不是要入库么,入库后先放松唯一性检查,然后通过group操作,可以简单获取到对应的结果。
SQL:
create table sum_point as
select ts,lat,lon,sum(num) from point group by ts,lat,lon

用gedit合并3行文本为一行

现在有一个生成的文本要转换为xls进行比对处理,需要将文本中的三行转换为一行:
9b39b822-b6ea-47aa-bf6f-ca3b46666e2d
364K .
14
efdcd3c4-57f6-4ca2-8ac6-f15a378b730b
4.0M .
29
f4ea6c49-2dfe-45c3-937e-7e4639461f6c
1.2G .
25

用ubuntu的gedit可以处理,需要regex插件:
1. 用gedit常规的替换操作将所有文本合并为一行。(即将\n替换为\t)
2. 用regex插件的替换功能:
\t\.\t([0-9]*)\t(.*?)-
替换为:
\t\1\n\2-
最终替换后效果为:
9b39b822-b6ea-47aa-bf6f-ca3b46666e2d 364K 14
efdcd3c4-57f6-4ca2-8ac6-f15a378b730b 4.0M 29
f4ea6c49-2dfe-45c3-937e-7e4639461f6c 1.2G 25

svn merge:主干与分支之间的合并

合并是svn使用的一个难点,合理使用merge功能可以减少很多不必要的工作,提升工作效率。

实例1. 从主干到分支的合并
在主干中某部分的功能已经得到了修改和增强,现在想把这些增强的功能应用到分支上,就可以这样操作:

svn merge -r 1804:HEAD https://svn.westgis.ac.cn/svn/westdc/metadata/trunk/application/admin/controllers/DownController.php

其中,分支自r1804创建以来,只做过小修改,而主干这个功能已经得到极大增强,所以可以合并,在合并的过程中,冲突是最常见的一种情况,要看情况决定使用mc我的版本(即本地版本)、tc他人的版本(即主干中的版本)或e进行编辑直接修改冲突的地方。

合并完成后首先检查本地合并后的版本能否运行,然后再进行提交(有效的文字描述能减少很多工作量)。

svn commit -m “merge trunk admin DownController changes [1804]:[2452] into the branch”

svn中转移库及彻底删除某目录

本机上已经有的svn库,如何合并到服务器上已经运营的svn呢?
可以这么处理:

svnadmin dump /your/svn/repository/path > svn.dump

同时,若某个project我不想上传到公共服务器与大家共享,或者是一个脏导入,可以这样删除:

cat svn.dump | svndumpfilter exclude /do/not/upload/project/name > newsvn.dump

然后再上传到服务器上进行处理:

scp newsvn.dump myserver:/path/

ssh登录到服务器上后再接着处理:

svnadmin load /repository/path

这样就可以合并本机的project到服务器上,并且和原有服务器上的project不会冲突。