当前位置: 首页 > news >正文

按大小拆分超大文件的方法(本文测试了一个62G的文件)

遇到一个问题,从网络上下载了一个62G的文件(新浪微博的语料集,地址:http://itee.uq.edu.au/~dke/WISE2012.htm),之后要进行其他处理,很显然先拆分成小文件再处理比较好。 我当时用的是windows系统,貌似没有这种拆分如此大的文件的工具,我本人试着用C++的内存映射方法(在内存里建一个内存映射文件,然后把超大文件的一部分映射到内存,然后分片读文件),将文件的一部分一部分读出来,读一部分换掉一部分然后写入小文件,从而达到拆分文件的目的,然而网上找了好多文章,内存映射这块还是没搞懂,尤其是参数很是复杂,只好放弃。 最后才发现,windows下面难以解决的问题,linux早就存在了现成的方案来解决,那就是split命令。split具体的使用方法贴一下:

linux split 命令

功能说明:切割文件。

语  法:split [--help][--version][-<行数>][-b <字节>][-C <字节>][-l <行数>][要切割的文件][输出文件名]

补充说明:split可将文件切成较小的文件,预设每1000行会切成一个小文件。

参  数:

-<行数>或-l<行数>  指定每多少行就要切成一个小文件。

-b<字节>  指定每多少字就要切成一个小文件。支持单位:m,k

-C<字节>  与-b参数类似,但切割时尽量维持每行的完整性。

--help  显示帮助。

--version  显示版本信息。

[输出文件名]  设置切割后文件的前置文件名,split会自动在前置文件名后再加上编号。

使用例子:

  split -b 100m filename

看过命令后,会发现其中的-C命令,会照顾到行,就是说截取的时候,不会将一行从中间截断,最终我只用了一行命令解决了问题: split -C 1024m 62G.txt output 该命令将一个62G的文件,拆分成每个1G的小文件,并且不会将行拆开(新浪微博这个数据,每行一条,不能拆分)  

转载于:https://www.cnblogs.com/crazyant/archive/2012/05/03/2823835.html

相关文章:

  • Ansible源码解析Inventory动态inventory脚本解析script.py
  • 《Java 学习笔记》 第九章阅读体验
  • pyCharm远程连接服务器
  • android应用程序跳转到系统的各个设置页面
  • Jboss问题总结 - 1
  • [转]三维成像原理
  • hdu 1671(字典树)
  • ![CDATA[ ]] 是什么东东
  • 什么是web接口
  • ubuntu下usb转串口设置
  • Python+Nginx实现邮件POP、IMAP、SMTP代理配置介绍
  • cookie setCookie sessionId
  • C# CancellationTokenSource和CancellationToken的实现
  • 制作首页的显示列表。
  • AjaxToolKit之Rating控件的使用(http://www.soaspx.com/dotnet/ajax/ajaxtech/ajaxtech_20091021_1219.html)...
  • IE9 : DOM Exception: INVALID_CHARACTER_ERR (5)
  • 【mysql】环境安装、服务启动、密码设置
  • 【跃迁之路】【585天】程序员高效学习方法论探索系列(实验阶段342-2018.09.13)...
  • 2017届校招提前批面试回顾
  • Android组件 - 收藏集 - 掘金
  • iOS动画编程-View动画[ 1 ] 基础View动画
  • maven工程打包jar以及java jar命令的classpath使用
  • mysql_config not found
  • python docx文档转html页面
  • Vue2 SSR 的优化之旅
  • vue和cordova项目整合打包,并实现vue调用android的相机的demo
  • 基于Volley网络库实现加载多种网络图片(包括GIF动态图片、圆形图片、普通图片)...
  • 精彩代码 vue.js
  • 前端攻城师
  • 如何在GitHub上创建个人博客
  • 入门级的git使用指北
  • 三栏布局总结
  • 深入浏览器事件循环的本质
  • 算法---两个栈实现一个队列
  • 推荐一个React的管理后台框架
  • 鱼骨图 - 如何绘制?
  • 京东物流联手山西图灵打造智能供应链,让阅读更有趣 ...
  • ​ArcGIS Pro 如何批量删除字段
  • #图像处理
  • (附源码)springboot车辆管理系统 毕业设计 031034
  • (附源码)SSM环卫人员管理平台 计算机毕设36412
  • (一)插入排序
  • .NET 8 中引入新的 IHostedLifecycleService 接口 实现定时任务
  • .NET 中的轻量级线程安全
  • .net 桌面开发 运行一阵子就自动关闭_聊城旋转门家用价格大约是多少,全自动旋转门,期待合作...
  • .net开发引用程序集提示没有强名称的解决办法
  • .NET企业级应用架构设计系列之开场白
  • .NET学习全景图
  • .net中我喜欢的两种验证码
  • /bin、/sbin、/usr/bin、/usr/sbin
  • @AutoConfigurationPackage的使用
  • @font-face 用字体画图标
  • [ C++ ] STL priority_queue(优先级队列)使用及其底层模拟实现,容器适配器,deque(双端队列)原理了解
  • [ C++ ] STL---stack与queue
  • [ CTF ] WriteUp- 2022年第三届“网鼎杯”网络安全大赛(白虎组)