linux如何实现文件分割(将大的日志文件分割成小的)

发布时间:2022-6-09 09:36

linux文件分割(将大的日志文件分割成小的) linux下文件分割可以通过split命令来实现,可以指定按行数分割和安大小分割两种模式。Linux下文件合并可以通过cat命令来实现,非常简单。

在Linux下用split进行文件分割:

模式一:指定分割后文件行数

对与txt文本文件,可以通过指定分割后文件的行数来进行文件分割。

命令:split -l 300 large_file.txt new_file_prefix

模式二:指定分割后文件大小

split -b 10m server.log waynelog

对二进制文件我们同样也可以按文件大小来分隔。

在Linux下用cat进行文件合并:

命令:cat small_files* > large_file

split

语法:split [--help][--version][-][-l][-b][-C][-d][-a][要切割的文件][输出文件名]

--version 显示版本信息

- 或者-l,指定每多少行切割一次,用于文本文件分割

-b 指定切割文件大小,单位m或k

-C 与-b类似,但尽量维持每行完整性

-d 使用数字而不是字母作为后缀名

-a 指定后缀名的长度,默认为2位

示例1

将a.tar.gz包按每个5M大小切割

split -b 5m a.tar.gz a.tar.gz.

后面输出的文件名a.tar.gz. 不指定的话会以xaa,xab,xac形式输出,文件名后面不加". ", 输出文件名会和后缀连在一起而不直观

示例2

使用| 管道将打包分割动作合并

tar -zcf - a | split -b 5m - a.tar.gz.

注意管道前后两个没带参数的“-”是不能省略的,他作为tar的ouput和split的input的参数

cat

语法:cat [-AbeEnstTuv] [--help] [--version] fileName

-n 或 –number 由 1 开始对所有输出的行数编号

-b 或 –number-nonblank 和 -n 相似,只不过对于空白行不编号

-s 或 –squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行

-v 或 –show-nonprinting

#cat常用功能

#一次显示整个文件
cat filename

#创建一个文件,只能创建新文件,不能编辑已有文件
cat>filename

#将几个文件合并为一个文件。
cat file1 file2> file

所以上面的示例中将分割文件合并,可以使用

#合并
cat a.tar.gz.* > a.tar.gz

#合并并解压
cat a.tar.gz.*| tar -zxv
Linux环境sed工具的使用及工作原理 电脑常识

Linux环境sed工具的使用及工作原理

基础知识 - 行编辑工具: 一行一行处理文件内容,例如:sed - 全屏编辑工具:一次性将文件所有内容加载到内存中,例如:vi、vim、nano sed编辑器: Stream Editor ...
vscode远程免密登入Linux服务器的配置方法 生活杂谈

vscode远程免密登入Linux服务器的配置方法

这篇文章主要介绍了配置vscode远程免密登入Linux服务器的操作方法,主要包括windows端操作和linux服务端操作,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的...