linux下利用split分割大文件

使用split分割大文件

在我们的实际生产环境中,会产生许许多多的大文件,这些文件的大小不一,有的甚至会有好几十T的大小,那么我们对这些文件进行分析时,又该如何下手呢?这时我们便可以使用linux下自带的一个命令split来实现文件的分割。

Split对文件的分割支持按照行数的分割,以及支持按照大小分割两种模式。要说明的是,在二进制文件中,没有‘行’的概念,所以二进制文件无法使用行分割,而只能按照文件的大小来进行分割。

本次实验自行分割出一个500M大小的文件,如下图:

我们来对这个模拟文件进行分割,注意文件中为空!

在上图中,我们可以看到,该文件为data类型,-l参数为按照行数分割,500代表500行分为一个文件,在上面实验中,我们可以看到只有一个文件被分割出来,但是如果是一个500M的文件,行数应该不止500行,但是却只分割出一个文件,所以这个文件就可以模拟二进制文件进行分割,要按照大小来进行分割:

如上图,我们对这个文件按照大小64M进行分割,分割出来很多的小文件,而多与出来不够64M的文件则放在一个文件中,并且分割出来的文件名会按照默认的顺序进行排列。

接下来,我们来按照行数进行分割:

在上图中,我们将/etc/passwd文件复制过来,可以看到该文件中有52行,我们按照20行的大小来进行分割,则会分割出三个小文进,文件的命名方式同样是按照默认顺序命名,不足行数大小的默认放在一个文件中。

我们通过split对大文件进行分割,可以得到许多的小文件,这样我们在日常工作中对文件的分析便会简单许多,并且会提高很多的效率。

时间: 2025-01-30 18:15:44

linux下利用split分割大文件的相关文章

split分割大文件--包含通过awk按规则分割文件到对应子文件

当对一个大文件进行传输或者分析的时候,一个可以参考的办法是先通过split对文件进行分割,再对每个子文件进行处理,如果需要合并再进行合并. split函数可以按文件大小或者行数来进行分割. -a : 指定后缀长度 -b : 每个文件多少字节,单位可以为k和M -d : 使用数字后缀而不是字母 -l : 指定每个文件的行数,默认1000 例子: 切割一个文件为每个子文件20M大小,-b指定20M大小,filename为文件名,prefix为每个子文件的前缀.后缀通常为aa,ab,ac.... $

linux下fallocate快速创建大文件

以前创建文件我一般用dd来创建,例如创建一个512M的文件: dd命令可以轻易实现创建指定大小的文件,如 dd if=/dev/zero of=test bs=1M count=1000 会生成一个1000M的test文件,文件内容为全0(因从/dev/zero中读取,/dev/zero为0源) 但是这样为实际写入硬盘,文件产生速度取决于硬盘读写速度,如果欲产生超大文件,速度很慢 在某种场景下,我们只想让文件系统认为存在一个超大文件在此,但是并不实际写入硬盘 则可以 dd if=/dev/zer

Linux下清空或删除大文件内容的5种方法

在Linux终端下处理文件时,有时候我们想要直接清空文件的内容时但又不用使用任何Linux命令行编辑器,去打开这些文件.那如何才能达到这个目的呢? 1.通过重定向到NULL来清空文件内容 清空或者让一个文件成为空白的最简单方式,是像下面那样,通过 shell 重定向 null 到该文件: 先看文件 access.log 的大小: 开始执行如下命令清空文件: 文件大小变为了0 2.通过 true 命令重定向来清空文件 下面将使用 : 符号,他是 shell 的一个内置命令,等同于 true 命令,

linux下利用sed重命名文件

3 for file in `ls ./*.*`  4 do  5 mv $file `echo $file|sed 's/IM_21R_ID331/1M21R_ID331/g'`  6 done  7 sed -n '/1B21M_ID228/p' HXMT*  8 sed -i 's/1B21M_ID228/1M21R_ID331/' HXMT*

Linux下利用sendfile函数传输文件

#include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <assert.h> #include <stdio.h> #include <unistd.h> #include <stdlib.h> #include <errno.h> #include <string.h> #include <

Linux培训教程 linux系统下分割大文件的方法

在linux中分割大文件,比如一个5gb日志文件,需要把它分成多个小文件,分割后以利于普通的文本编辑器读取. 有时,需要传输20gb的大文件,Linux培训 教程件到另一台服务器,也需要把它分割成多个文件,这样便于传输数据. 以下通过五个不同的例子,来讲解Linux下分割大文件的方法,供大家参考. 例1.以每个文件1000行分割 split命令分割文件成每个文件1000行,并且文件名依次为 [前缀]aa,[前缀]ab, [前缀]ac等,默认的前缀是X,每个文件的行数为1000行. 命令: 复制代

Linux Shell编程实战---计算特定目录下前10个大文件

计算特定目录下前10个大文件 在给定的目录下,想知道有哪些大文件存在,取前十个,按文件大小排行 (1).使用awk来实现 #!/bin/bash path=/root/shell find $path-type f | awk '{ var=$0 "ls -l "var |getline var1 split(var1,a," ") filename=a[9] filesize=a[5] printf("%s %s\n",filename,fil

【java】 linux下利用nohup后台运行jar文件包程序

Linux 运行jar包命令如下: 方式一: java -jar XXX.jar 特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出 那如何让窗口不锁定? 方式二 java -jar XXX.jar & &代表在后台运行. 特定:当前ssh窗口不被锁定,但是当窗口关闭时,程序中止运行. 继续改进,如何让窗口关闭时,程序仍然运行? 方式三 nohup java -jar XXX.jar & nohup 意思是不挂断运行命令,当账户退出或终端关闭时,

linux 下查找大于100M的文件

命令行如下 find . -type f -size +1000000k Linux系统下查找大文件或目录的技巧 当硬盘空间不够时,我们就很关心哪些目录或文件比较大,看看能否干掉一些了,怎么才能知道呢? #已易读的格式显示指定目录或文件的大小,-s选项指定对于目录不详细显示每个子目录或文件的大小 du -sh [dirname|filename] 如: 当前目录的大小: du -sh . 当前目录下个文件或目录的大小: du -sh * [[email protected] var]# du -