more ~/file.txt linux,linux下文件的切分与合并

news/2024/11/27 19:42:42/

名称:split

使用权限:所有使用者

使 用方式:split [OPTION] [INPUT [PREFIX]

说明:

将一个档案分割成数个。而从 INPUT 分割输出成固定大小的档案,其档名依序为 PREFIXaa, PREFIXab...;PREFIX 预设值为 `x。若没有 INPUT 档或为 `-,则从标准输入读进资料。

匡兜

-b, --bytes=SIZE

SIZE 值为每一输出档案的大小,单位为 byte。

-C, --line-bytes=SIZE

每一输出档中,单行的最大 byte 数。

-l, --lines=NUMBER

NUMBER 值为每一输出档的列数大小。

-NUMBER

与 -l NUMBER 相同。

--verbose

于每个输出档被开启前,列印出侦错资讯到标准错误输出。

--help

显示辅助资讯然后离开。

--version

列出版本资讯然后离开。

SIZE 可加入单位: b 代表 512, k 代表 1K, m 代表 1 Meg。

范例:

PostgresSQL 大型资料库备份与回存:

因 Postgres 允许表格大过你系统档案的最大容量,所以要将表格 dump 到单一的档案可能会有问题,使用 split进行档案分割。

% pg_dump dbname | split -b 1m - filename.dump.

重 新载入

% createdb dbname

% cat filename.dump.* | pgsql dbname

1、文件的切分及结合工具;

可能我们遇到这种情况,有时文件比较大,想上传到服务器 上,但由于服务器 管理员为了安全 考虑,把上传空间作了限 制,比如只能上传20M的文件,如果我们文件的体积在100M的,有时就是压缩也不能满足服务器上传的限制。这时我们就要考虑切分文件了,把100M的文 件,切分成若干份,然后传到服务器上。切分后的每个文件都是原文件的组成部份。如果要获得整个完整的文件,我们就需要文件的结合工具。

所以我们引入了文件切分工具split和csplit,文件的结合工具cat;

2、文件的切分工具 split 和csplit;

split 是把一个文件拆分为长度或体积相等的若干文件的工具;

2.1 split 工具;

split 是把一个文件拆分为长度或体积相等的若干文件的工具;

2.11 语法格式;

split [参数选项] infile [outfile]

split 把输入的文件拆分为若干体积或长度相等的文件,输入文件保持不变,只是把结果拆分结果写到outfileaa、outfileab ... ... 等文件中。如果我们不指定outfile,被拆分后的文件会写到 xaa、xab ... ...。

参数

-l n 把infile拆分为具有n行的段,默认值为1000

-b n[bkm] 以体积为单位的拆分,约定每拆分后每个文件的大小 ,b代表512B,k代表1KB,m代表1MB。

-C bytes[bkm] 把bytes的最大值放入文件,坚持增加完整的行;

- 从标准输入读取;

--help 帮助;

2.12 split实例应用;

实例一:比如我们想切分一个文件linux doc.txt,切分 后,每两行存为一个新文件。

[root@localhost ~]# more linux doc.txt 注:linuxdoc.txt 文件内容查看;

111111111

222222222

333333333

444444444

555555555

666666666

777777777

888888888

999999999

000000000

[root@localhost ~]# split -l 2 linuxdoc.txt linuxdocsp 注:切分linuxdoc.txt文件,被切分后的文件名linuxdocsp开头

[root@localhost ~]# ls linuxdocspa* 注:查看切分后的所有文件;

linuxdocspaa linuxdocspab linuxdocspac linuxdocspad linuxdocspae

[root@localhost ~]# more linuxdocspa* 注:查看这些文件的内容;是不是每个文件都是两行呢?

linuxdocspaa

::::::::::::::

111111111

222222222

::::::::::::::

linuxdocspab

::::::::::::::

333333333

444444444

::::::::::::::

linuxdocspac

::::::::::::::

555555555

666666666

::::::::::::::

linuxdocspad

::::::::::::::

777777777

888888888

::::::::::::::

linuxdocspae

::::::::::::::

999999999

000000000

实例二:以文件体积为单位的切分;

[root@localhost ~]# ls -lh linuxdoc.txt

-rw-r--r-- 1 root root 100 04-27 15:56 linuxdoc.txt

[root@localhost ~]# more linuxdoc.txt

111111111

222222222

333333333

444444444

555555555

666666666

777777777

888888888

999999999

000000000

[root@localhost ~]# split -b 30 linuxdoc.txt linuxdocwsp 如果指定切分体积大小后面没有接单位,默认是B;

[root@localhost ~]# ls -lh linuxdocwspa*

-rw-r--r-- 1 root root 30 04-27 16:10 linuxdocwspaa

-rw-r--r-- 1 root root 30 04-27 16:10 linuxdocwspab

-rw-r--r-- 1 root root 30 04-27 16:10 linuxdocwspac

-rw-r--r-- 1 root root 10 04-27 16:10 linuxdocwspad

[root@localhost ~]# more linuxdocwspa*

::::::::::::::

linuxdocwspaa

::::::::::::::

111111111

222222222

333333333

::::::::::::::

linuxdocwspab

::::::::::::::

444444444

555555555

666666666

::::::::::::::

linuxdocwspac

::::::::::::::

777777777

888888888

999999999

::::::::::::::

linuxdocwspad

::::::::::::::

000000000

对于切分体积的说明:如果没有指定单位,默认单位是B。还有其它的单位,比如b、k、m。看下面的例子;

[root@localhost ~]# ls -lh moretool.txt

-rw-r--r-- 1 root root 13K 04-27 16:17 moretool.txt 注:文件大小为13K;

[root@localhost ~]#split -b 3k moretool.txt moretoolwsp 注: 切分后每个文件大小为3K;

实例三:从标准输入读取的实例;

[root@localhost ~]# ls -lh /etc | split -l 40 - etcfilelist

[root@localhost ~]# ls etcfilelista*

etcfilelistaa etcfilelistab etcfilelistac etcfilelistad etcfilelistae etcfilelistaf etcfilelistag

注:本指令的意思是用ls以长格式列出/etc目录的文件(不包括.file格式的文件,也就是隐藏文件),把输入的内容传递给split,让 split来切分每40行为存为一个文件,文件名的开头以etcfilelist开始。注意40后面的- ,表示从标准输入读取,在这里就表示键盘输入了,也就是读取ls -lh /etc 指令的内容。然后split切分。

2.2 csplit 工具;

正在补充之中... ...

3、文件的连接工具 cat;

cat 工具如果后面直接文件文件名,就可以查看文件的内容。我们在《文件内容查看工具》中有说过。在《文件内容查看工具》一文中,我们也谈过cat 连接文件的功能;现在我们仍得把cat工具连接文件的功能单列出来说一说。

3.1 把多个文件合并到一个新的文件中;

命令格式如下:

cat file1 file2 file3 ... ... > filen

我们可以把file1、file2、file3 等多个文件合并到一个文件中,其中filen是在合并这些文件的同时新建的文件,而不是已存在的文件;

[root@localhost ~]# cat sir01.txt

123456

[root@localhost ~]# cat sir02.txt

56789

[root@localhost ~]# cat sir03.txt

09876

[root@localhost ~]# cat sir01.txt sir02.txt sir03.txt > sir04.txt

[root@localhost ~]# more sir04.txt

123456

56789

09876

3.2 把多个文件合并追加到一个已存在的文件中;

命令格式如下:

cat file1 file2 file3 ... ... >> filen

如果我们想把file1、file2、file3等多个文件内容连接起来,并追加到一个已存在的文件filen中,应该用追加的方法;

[root@localhost ~]# more sir01.txt

123456

[root@localhost ~]# cat sir01.txt

123456

[root@localhost ~]# cat sir02.txt

56789

[root@localhost ~]# cat sir03.txt

09876

[root@localhost ~]# cat sir05.txt

aaaaa

bbbbb

[root@localhost ~]# cat sir01.txt sir02.txt sir03.txt >> sir05.txt

[root@localhost ~]# cat sir05.txt

aaaaa

bbbbb

123456

56789

09876

4、关于分拆文件和连接文件的安全 性;

比如我们把一个大的文件分拆为多个小文件时,肯定会考虑到,我们重新把一个一个小的分拆文件连接起来,会不会能和原文件保持一致 。这样的疑问其实也是有道理的,因为这关系到一个文件的完整性,如果真的合并不到一起,关系到文件的完整性和安全性。这时就涉及到文件的校验工具。一般我 们是通过MD5工具来校验对比。在Linux也有这样的工具md5sum。

[root@localhost ~]# ls -lh myfile.img 注:查看myfile.img文件属性;

-rw-r--r-- 1 root root 7.9M 04-27 20:35 myfile.img

[root@localhost ~]# split -b 4m myfile.img myfileSp 注:分拆为大小为4M的文件;

[root@localhost ~]# ls -lh myfileSp* 注:列出分拆文件,我们看到有两个文件;

-rw-r--r-- 1 root root 4.0M 04-27 20:37 myfileSpaa

-rw-r--r-- 1 root root 3.9M 04-27 20:37 myfileSpab

[root@localhost ~]# cat myfileSp* > newmyfile.img 注:我们尝试合并文件到一个新文件中;

[root@localhost ~]# ls -lh newmyfile.img

-rw-r--r-- 1 root root 7.9M 04-27 20:38 newmyfile.img

[root@localhost ~]# md5sum newmyfile.img myfile.img 注:我们对比合并后文件和原文件的MD5值,如果M55值相同,就是完整的;

[root@localhost ~]# md5sum newmyfile.img myfile.img

7eb24d865a14fa3227633816800522c1 myfile.img

7eb24d865a14fa3227633816800522c1 newmyfile.img

上面是一个实例,把myfile.img文件分拆为4M大小的文件,然后再把两个文件连接起来,然后校验是不是合并后的文件和原文件的MD5值 是相同的,如果相同,证明分拆过程是安全的。

5、关于本文;

文件的切分工具和结合工具只是介绍性的,用法也相对简单。我们知道有这两个工具就行了,用的时候查man和help就OK。没有必要象我这样大 动干戈写文档,弄的好像写长篇小说似的。如果我真的能当作家,对我来说可是极大的荣耀~~~

6、后记;

关于目录和文件管理的文档写了有一些了,我想为这些文档写个归类文档,这样新手查看就容易一点。另外感觉应该写一下字符模式下的文本编辑工具的 简单用法,比如vi或nano之类的。这新手面对黑黑的屏幕就不会不知所措了~~~


http://www.ppmy.cn/news/340163.html

相关文章

LuceneElasticSeachKafka

Lucene&ElasticSeach&Kafka Lucene&ElasticSeach 1 什么是全文检索 1.1 数据分类 生活中的数据总体分为两种:结构化数据和非结构化数据。 ​ 结构化数据:指具有固定格式或有限长度的数据,如数据库,元数据等 ​ …

计算机组成原理复习笔记——一、计算机系统概述

一、计算机系统概述 1.1 计算机发展历程 1.1.1 什么是计算机系统 计算机系统 硬件软件, 硬件:计算机的实体,如主机、外设。 软件:由具有各类特殊功能的程序组成。 计算机性能的好坏取决于“软”、“硬”件功能的总和。 软件…

2--MyCAT中间件和ansible基础

一、Mycat 1)Mycat介绍 在整个IT系统架构中,数据库是非常重要,通常又是访问压力较大的一个服务,除了在程序开发的本身做优化,如:SQL语句优化、代码优化,数据库的处理本身优化也是非常重要的。主从、热备、…

java基础巩固-宇宙第一AiYWM:为了维持生计,Redis基础Part2(Redis的数据结构)~整起

PART1:Redis的数据结构&#xff1a;53数据类型<----------------->数据结构【未来随着 Redis 新版本的发布&#xff0c;可能会有新的数据结构出现&#xff0c;通过查阅 Redis 官网【[Redis官网命令中心](http://www.redis.cn/commands.html)】 对应的介绍&#xff0c;你总…

空间管理员(一)AFS文件目录系统索引节点vfs_inode结构

空间管理员&#xff08;一&#xff09;AFS文件目录系统索引节点vfs_inode结构 文章目录 空间管理员&#xff08;一&#xff09;AFS文件目录系统索引节点vfs_inode结构前言一、VFS&#xff08;Virtual File System&#xff09;虚拟文件系统二、VFS反映设备文件的索引节点对象由d…

综合架构web服务之nginx详解

文章目录 nginx 服务配置详细介绍 关于作者前言一、nginx web 入门简介 1.1 什么是nginx1.2 常见的网站服务1.3 nginx 网站服务特点1.4 网站页面访问原理 二、nginx 服务部署安装 2.1实验环境2.2 YUM 安装2.3 源码编译安装2.4 nginx重要文件目录结构2.5 虚拟主机介绍及配置 2.…

Hive 3.x详细笔记

Hive 数据仓库 概念 数据仓库&#xff08;Data Warehouse,简称数仓、DW&#xff09;&#xff0c;是一个用于存储&#xff0c;分许&#xff0c;报告的数据系统。 数据仓库的目的是构建面向分析的集成数据环境&#xff0c;分析结果为企业提供决策支持。 数据仓库本身并不是“…

淘宝、天猫API调用如何按关键词上搜索,item_search_tmall - 按关键字搜索天猫商品

本帖只展示部分代码&#xff0c;需要更多API调试请移步注册API账号&#xff0c;获取Key和secret 测试地址&#xff1a;登录 - 跨境电商平台接口提供商 数据采集公司 数据接口定制服务 企业级数据服务商 数据如下&#xff1a; Request address: https://api-gw.onebound.cn/ta…