文件的切分split和结合工具cat 介绍

作者:北南南北
来自:LinuxSir.Org
摘要:文件的切分工具split和文件的结合工具cat,是我们偶尔用到的工具。初学的弟兄可能需要了解一下,有时我们在系统管理中还是需要的;

目录


++++++++++++++++++++++++++++++++++++++
正文:
++++++++++++++++++++++++++++++++++++++


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实例应用;

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

[root@localhost ~]# more linuxdoc.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之类的。这新手面对黑黑的屏幕就不会不知所措了~~~


7、参考文档;

man 和help ;


8、相关文档;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: csv大文件切割是一种将大型csv文件分割成较小片段的处理方式,以便于更高效地处理和管理数据。在处理大型数据时,使用合适的工具可以提高效率和准确性。 "split"是一种常用的工具,可以用来切割csv文件。它可以按照指定的条件或规则将大文件切分成多个小文件。在处理csv文件时,可以根据行数、文件大小或某些关键字来切割文件。这样可以将大文件分解成多个小文件,每个小文件的大小更易于处理和导入其他工具或数据库中。 "split"工具操作简单方便,使用灵活。用户只需通过命令行指定切割条件,即可快速完成文件切分操作。此外,"split"还提供了一些参数选项,如指定输出文件前缀、后缀,设置每个小文件的大小等。通过调整这些选项,可以满足不同的切割需求。 使用"split"工具切割csv文件还有其他好处。首先,切割后的小文件可以更轻松地分享给其他人,方便数据共享与协作。其次,小文件更容易进行数据校验和异常处理,减少错误的传递和处理时间。此外,切割后的小文件可以同时进行并发处理,提高数据处理的效率和速度。 总之,split工具是处理csv大文件切割的好用工具,它能够快速且灵活地将大文件分割成小文件,便于后续数据处理和管理。 ### 回答2: CSV(逗号分隔值)文件是一种常见的电子表格文件格式,用于存储和传输大量结构化数据。当我们处理大型CSV文件时,有时需要将其切割成更小的文件以简化处理或满足特定需求。在这种情况下,我们可以使用一种方便且易于使用的工具称为"split"。 "split"是一个通用的命令行工具,可以将文件拆分成多个较小的文件。它可以根据文件的大小、行数或特定的分隔符将文件分割成多个部分。对于CSV文件的切割,我们可以根据行数或文件大小来选择要生成的切割文件的数量。 具体操作时,我们可以在命令行中使用以下命令: `split -l N input.csv output_` 其中,`-l N`表示按行数切割文件,`N`为每个切割文件的最大行数;`input.csv`为要切割的CSV文件;`output_`为输出的切割文件名前缀。"split"会自动为每个切割文件添加编号。例如,如果我们运行上述命令,"split"会将`input.csv`分割成多个文件`output_aa`, `output_ab`, `output_ac`等等。 使用"split"工具进行CSV文件切割时,我们可以将大型文件分割成更小的、易于处理的文件,从而加快数据处理和分析的速度。这对于使用有限的系统资源或处理非常大的数据集的情况尤为重要。 综上所述,"split"是一个方便且易于使用的工具,可用于将大型CSV文件切割成更小的文件。它提供了选择按行数或文件大小来切割文件的能力,并且在处理大型数据集时能够提高处理和分析效率。 ### 回答3: CSV大文件切割是指将一个较大的CSV文件按照指定的规则拆分成多个较小的文件,以便于处理和管理。 在CSV大文件切割中,一个很好用的工具split命令。split命令是Linux和Unix系统中的一个非常常用的命令,用于将文件分割成多个较小的部分。它可以按照指定的大小、行数或者特定的分隔符将文件拆分成多个小文件。 使用split命令切割CSV大文件非常简单。只需要在终端中输入"split -l [行数] [文件名]"即可。其中,-l参数表示按照行数切割,[行数]表示每个切割后的小文件包含的行数,[文件名]表示需要切割的CSV文件名。执行该命令后,split会自动将文件按照指定的行数进行切割,并生成多个以字母序列命名的小文件。 除了split命令外,还有其他一些工具也可以用于CSV大文件的切割,比如csplit、awk等。这些工具提供了更多的灵活性和自定义选项,可以根据具体需求进行切割。 总之,无论是使用split命令还是其他工具,CSV大文件的切割都变得非常简单和高效。通过将大文件切割成多个小文件,我们可以更方便地处理和管理数据,提高工作效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值