如何把一个TXT文件等分成几小份

如何把一个TXT文件等分成几小份,第1张

文件切分split和结合工具cat 介绍
moretooltxt
-rw-r--r--
1 root root 13K 04-27 16:17 moretooltxt 注:文件大小为13K;
[root@localhost ~]#split
-b 3k moretooltxt 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切分。
22 csplit 工具;
正在补充之中
3、文件的连接工具 cat;
cat 工具如果后面直接文件文件名,就可以查看文件的内容。我们在《文件内容查看工具》中有说过。在《文件内容查看工具》一文中,我们也谈过cat
连接文件的功能;现在我们仍得把cat工具连接文件的功能单列出来说一说。
31 把多个文件合并到一个新的文件中;
命令格式如下:
cat file1 file2 file3 > filen
我们可以把file1、file2、file3 等多个文件合并到一个文件中,其中filen是在合并这些文件的同时新建的文件,而不是已存在的文件;
[root@localhost ~]# cat
sir01txt
123456
[root@localhost ~]# cat
sir02txt
56789
[root@localhost ~]# cat
sir03txt
09876
[root@localhost ~]# cat sir01txt sir02txt sir03txt >
sir04txt
[root@localhost ~]# more
sir04txt
123456
56789
09876
32 把多个文件合并追加到一个已存在的文件中;
命令格式如下:
cat file1 file2 file3 >>
filen
如果我们想把file1、file2、file3等多个文件内容连接起来,并追加到一个已存在的文件filen中,应该用追加的方法;
[root@localhost ~]# more
sir01txt
123456
[root@localhost ~]# cat
sir01txt
123456
[root@localhost ~]# cat
sir02txt
56789
[root@localhost ~]# cat
sir03txt
09876
[root@localhost ~]# cat
sir05txt
aaaaa
bbbbb
[root@localhost ~]# cat sir01txt sir02txt
sir03txt >> sir05txt
[root@localhost ~]# cat
sir05txt
aaaaa
bbbbb
123456
56789
09876
4、并于分拆文件和连接文件的安全性;
比如我们把一个大的文件分拆为多个小文件时,肯定会考虑到,我们重新把一个一个小的分拆文件连接起来,会不会能和原文件保持一致
。这样的疑问其实也是有道理的,因为这关系到一个文件的完整性,如果真的合并不到一起,关系到文件的完整性和安全性。这时就涉及到文件的校验工具。一般我们是通过MD5工具来校验对比。在Linux也有这样的工具md5sum。
[root@localhost ~]# ls -lh myfileimg
注:查看myfileimg文件属性;
-rw-r--r-- 1 root root 79M 04-27 20:35
myfileimg
[root@localhost ~]# split -b 4m myfileimg myfileSp
注:分拆为大小为4M的文件;
[root@localhost ~]# ls -lh myfileSp
注:列出分拆文件,我们看到有两个文件;
-rw-r--r-- 1 root root 40M 04-27 20:37
myfileSpaa
-rw-r--r-- 1 root root 39M 04-27 20:37
myfileSpab
[root@localhost ~]# cat myfileSp > newmyfileimg
注:我们尝试合并文件到一个新文件中;
[root@localhost ~]# ls -lh newmyfileimg
-rw-r--r-- 1
root root 79M 04-27 20:38 newmyfileimg
[root@localhost ~]# md5sum
newmyfileimg myfileimg 注:我们对比合并后文件和原文件的MD5值,如果M55值相同,就是完整的;
[root@localhost
~]# md5sum newmyfileimg myfileimg
7eb24d865a14fa3227633816800522c1
myfileimg
7eb24d865a14fa3227633816800522c1 newmyfileimg
上面是一个实例,把myfileimg文件分拆为4M大小的文件,然后再把两个文件连接起来,然后校验是不是合并后的文件和原文件的MD5值是相同的,如果相同,证明分拆过程是安全的。
5、关于本文;
文件的切分工具和结合工具只是介绍性的,用法也相对简单。我们知道有这两个工具就行了,用的时候查man和help就OK。没有必要象我这样大动干戈写文档,弄的好像写长篇小说似的。如果我真的能当作家,对我来说可是极大的荣耀~~~
6、后记;
关于目录和文件管理的文档写了有一些了,我想为这些文档写个归类文档,这样新手查看就容易一点。另外感觉应该写一下字符模式下的文本编辑工具的简单用法,比如vi或nano之类的。这新手面对黑黑的屏幕就不会不知所措了~~~
7、参考文档;
man 和help ;

五行关键字应该分割为6个文件啊?要不就是只取关键字行以下的行。思路:用sed得出包含这个关键字的行的行号,然后根据行号分割文件。 #!/bin/shmyFile=TestResulttxtnum=5count=0line=`sed -n '/FILE_TESTCASERESULT/=' $myFile`for n in $linedo [ $count -eq 0 ] && let startLine=n+1 && continue let count+=1 let endLine=n-1 [ $count -eq $num ] && endLine=`sed -n '$=' myFile` sed -n "${startLine},${endLine} p;q" $myFile >result_${count}txt let startLine=n+1done 结果保存到result_1txt,result_2txt,result_3txt,result_4txt,result_5txt五个文件中。注:关键字行本身不保存。如果要保存关键字行,请修改代码中的 let startLine=n+1 为 startLine=$n (两处地方)。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13310613.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-12
下一篇 2023-07-12

发表评论

登录后才能评论

评论列表(0条)

保存