大文件读取、分割、合并
一、读取
文件的读取可参考:Linux文本查看命令。
vim和cat 会消耗比较多的内存和cpu资源,导致系统死机或者卡顿,因此读取大文件不建议使用;
more和less 不会消耗特别多的内存和cpu资源。
二、分割
语法:split [选项] [文件名] [前缀]
-b: 指定每个分割文件的大小,单位有K、M、G、P等
-d: 指定分割文件的后缀为数字
-a: 指定分割文件数字后缀的长度,如果是1,后缀为0,1,2…;如果是2,则为00,01,02…默认是2
-C: 指定每行最大的字节数
-l: 指定每个文件最大的行数
# 把bigfile.txt分割为内存大小为1G,分割文件数字后缀长度是1的小文件bigfile.txt.0 bigfile.txt.1 ...
split -b 1G -a 1 -d bigfile.txt bigfile.txt.
# 把a.txt文件分割为每个文件最大行数是100000,分割文件数字后缀长度为4的小文件c.txt.0000 c.0001 ...
split -l 100000 -a 4 -d a.txt c.txt.
三、合并
压缩文件和非压缩文件的合并都是使用cat 结合重定向 合并成一个大文件:
文本文件的合并
# 把sanchuang.txt.0001~sanchuang.txt.0005的5个文件合并为chen.txt
cat sanchuang.txt.000{
1..5} >chen.txt
压缩文件的合并
# 把压缩文件sc.tar.gz.开头的所有文件合并为sc.tar.gz
cat sc.tar.gz.* >sc.tar.gz