关于大数据文件比对问题

lnetant 2008-05-30 11:19:48
现有a、b 2个百万级数据文件,需要生成新的文件
新文件的内容是存在a中,但不存在b中的数据
在unix/linux下除了shell脚本比对外
使用c/c++有没有高效率的过滤方式或方法?!
例:
a文件内容:
1234
abcd
b文件内容:
abcd
efdg
形成新的c文件内容为:
1234
...全文
120 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
野男孩 2008-05-31
  • 打赏
  • 举报
回复
对两个文件按行计算一个 hash值, 同一个文件里hash相同的内容做成队列,然后对两个文件中hash相同的做比较。

谁考虑一下这个复杂度~
zxw89167935 2008-05-31
  • 打赏
  • 举报
回复

∽∝∞∽∝∞∽∝∞∽∝∞∽∝∞∽∝∞∽∝∞∽∝∞∽∝∞∽∝∞∽∝∞∽∝∞∽∝∞∽∝∞∽∝∞∽∝∞

力争成为中国最大的架构师群联盟,架构师技术交流群:28995710已接近尾声,62402336已正式开放!!!

已经上传的顶级软件产品的架构分析,本群资料仅供研究学习,不得商用!!!
google 、
eBay、
Youtube、
淘宝等
......
技术文章包括:
《自己动手写操作系统》
《搜索引擎-原理、技术与系统》
《企业应用架构模式》
......
重要的RUP实例
设计模式精解
......
资料陆续上传中
∽∝∞∽∝∞∽∝∞∽∝∞∽∝∞∽∝∞∽∝∞∽∝∞∽∝∞∽∝∞∽∝∞∽∝∞∽∝∞∽∝∞∽∝∞∽∝∞
Treazy 2008-05-31
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 iambic 的回复:]
试下diff --help就知道行不行了。
也有专门的命令,但是只用过一次,记不得名字了。
[/Quote]

shell做比较省力了

但是如果你非得用c/c++去用正则或者其他方法实现,那效率就不好说了

到可以试试c/c++调perl脚本
iambic 2008-05-30
  • 打赏
  • 举报
回复
请先用diff程序试试。如果证实速度太慢再考虑别的方法。
xkyx_cn 2008-05-30
  • 打赏
  • 举报
回复
这种活还是交给shell吧
用sed awk来做吧
iambic 2008-05-30
  • 打赏
  • 举报
回复
试下diff --help就知道行不行了。
也有专门的命令,但是只用过一次,记不得名字了。
icansaymyabc 2008-05-30
  • 打赏
  • 举报
回复
使用c/c++当然有比shell效率高的过滤方式或方法了。

但是实现起来比较复杂,基本上等于你完成一个轻量级的简单数据库。

其实unix/linux下的shell脚本效率也是相当高的,它也是C语言实现的通用数据对照处理程序。
当然要针对你的数据编写专用的程序提高效率是可能的,但是如果你的设计不是很好的话,说不定比shell脚本的效率还低。
lnetant 2008-05-30
  • 打赏
  • 举报
回复
shell处理方式确实很不错,不过如果在处理数据过程中再加点要求,比如对所有的数据都要作压缩或是根据号码特定位插入不同表的话,你用shell出来后还得重新处理一次文件,估计速度还是不理想

diff作的我没记错的话因该是显示2个文件不同部分,而且是两个文件内容都有。
jmulxg 2008-05-30
  • 打赏
  • 举报
回复
应该是行比较吧?

感觉很难,期待大牛来帮忙

69,337

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧