海南网新闻最新消息今天,seo关键词优化技巧,刷题网站开发,阿里云虚拟主机免费版点击上方开发者的花花世界#xff0c;选择设为星标技术干货不定时送达#xff01;这是一个知识点方便快捷的给结构化数据文件分割大小并保留文件的表头#xff0c;几十个G的结构化文件不仅阅读编辑麻烦#xff0c;而且使用受限#xff0c;因此高效… 点击上方开发者的花花世界选择设为星标技术干货不定时送达这是一个知识点方便快捷的给结构化数据文件分割大小并保留文件的表头几十个G的结构化文件不仅阅读编辑麻烦而且使用受限因此高效的分割成小文件并保留头行1、分割文件在Linux下切割和合并文件可以使用split和cat命令来实现。在Windows下安装Git Bash也可以使用split和cat命令。分割文件的命令是split通过输入split --help可以查询帮助信息。假设现在有个6GB大小的文件test.log这里简单介绍下几种分割的方式按大小分割文件(此处不推荐)split -b 500m 文件 newfile每个文件大小500m生成的新文件的文件名是newfile后面加上按照aaabac……来排序的 比如文件有1.4G那么会切割出3个文件文件名分别是newfileaanewfileabnewfileac没有扩展名 新文件名可以不设置系统默认新文件以字母x开头也就是说如果命令是split -b 500m log.txt那么文件名就是xaaxabaxc 速度比windows下的那些什么切割软件快太多 同时-C参数表示按照所有行数加起来的最大字节数进行分割同样可以使用k或者m作为单位其实效果和上边的-b差不多只是在切割时将尽量维持每行的完整性。另外切开的文件还能再合起来命令是cat newfile* orifile此处不推荐的原因是因为结构化文件按大小分割会造成结构破坏故推荐按行分割按行分割文件split -l split -l 5000 文件 newfile-l参数表示按照行数进行分割即一个小文件中最多有多少行-l number可以缩写成-number上边的命令表示按照5000行一个小文件进行分割。推荐按行分割文件能保留行的完整性不破坏结构化文件的结构2、给分割后的文件插入表头行Sed是一款流编辑工具用来对文本进行过滤与替换操作特别是当你想要对几十个配置文件做统一修改时你会感受到Sed的魅力Sed通过一次仅读取一行内容来对某些指令进行处理后输出所以Sed更适合于处理大数据文件。首先Sed通过文件或管道读取文件内容但Sed默认并不直接修改源文件而是将读入的内容复制到缓冲区中我们称之为模式空间(pattern space)所有的指令操作都是在模式空间中进行的然后Sed根据相应的指令对模式空间中的内容进行处理并输出结果默认输出至标准输出(即屏幕上)。Sed从文件中读取数据如果没有输入文件则默认对标准输入进程数据进行处理脚本指令是第一个非“-”开头的参数具体语法格式如下sed [选项]...{脚本指令} [输入文件]选项含义--version显示sed版本--help显示帮助文档-n--quit--silent静默输出默认情况下sed程序在所有的脚本指令执行完毕后将自动打印模式空间中的内容该选项可以屏蔽自动打印。-e script允许多个脚本指令被执行-f script-file从文件中读取脚本指令对编写自动脚本程序很实用。-i--in-place慎用该选项将直接修改源文件lN该选项指令l指令可以输出的行长度l指令为输出非打印字符。--posix禁用GNU sed扩展功能-r在脚本指令中使用扩展正则表达式-s--separate默认情况下sed将把输入的多个文件名作为一个长的连续的输入流而GNU sed则允许把它们当作单独的文件-u--unbuffered最低限度的缓存输入和输出因此给分割后的文件加表头的方法是sed -i 1i 字段,字段,字段,字段 文件1i表示第一行之前3、批量给分割后的文件增加后缀名由于分割后的文件默认是没有后缀名的故需要增加后缀名 非常简单,例如CSV后缀for i in *do mv $i $i.csvdone完成关注Github1/2极客[1]关注博客御前提笔小书童[2]关注网站HuMingfeng[3]关注公众号开发者的花花世界References[1] 1/2极客: https://github.com/humingfeng[2] 御前提笔小书童: https://blog.csdn.net/qq_22260641[3] HuMingfeng: https://royalscholar.cn喜欢就点个在看呗^_^