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

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

分类: 电脑/网络 >> *** 作系统/系统故障

问题描述:

不要太烦的步骤

解析:

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

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 ;

将多页文档拆分为单页或多页:

1、在Word里面打开那个需要分割的文档(假设它的文件名叫做“原始文档.doc”);

2、键入ALT+F11打开VBA编辑器,选择菜单“插入-模块”;

3、粘贴下面的代码:

Option Explicit

Sub SplitPagesAsDocuments()

Dim oSrcDoc As Document, oNewDoc As Document

Dim strSrcName As String, strNewName As String

Dim oRange As Range

Dim nIndex As Integer

Dim fso As Object

Set fso = CreateObject("Scripting.FileSystemObject")

Set oSrcDoc = ActiveDocument

Set oRange = oSrcDoc.Content

oRange.Collapse wdCollapseStart

oRange.Select

For nIndex = 1 To ActiveDocument.Content.Information(wdNumberOfPagesInDocument)

oSrcDoc.Bookmarks("\page").Range.Copy

oSrcDoc.Windows(1).Activate

Application.Browser.Target = wdBrowsePage

Application.Browser.Next

strSrcName = oSrcDoc.FullName

strNewName = fso.BuildPath(fso.GetParentFolderName(strSrcName), _

fso.GetBaseName(strSrcName) &"_" &nIndex &"." &fso.GetExtensionName(strSrcName))

Set oNewDoc = Documents.Add

Selection.Paste

oNewDoc.SaveAs strNewName

oNewDoc.Close False

Next

Set oNewDoc = Nothing

Set oRange = Nothing

Set oSrcDoc = Nothing

Set fso = Nothing

MsgBox "结束!"

End Sub

4、键入F5运行,看到“完成!”结束。

5、检查当前文档所在路径下是否生成若干名为“原始文档_n.doc”(n代表其对应原始文档中的第几页)的文档,检查它们的内容是否就对应于原始文档每个页面的内容。

不过那个是按单页拆分的。如果想按照指定页数拆分,请使用下面的代码,其它步骤和原来那个方案相同。

Option Explicit

Sub SplitEveryFivePagesAsDocuments()

Dim oSrcDoc As Document, oNewDoc As Document

Dim strSrcName As String, strNewName As String

Dim oRange As Range

Dim nIndex As Integer, nSubIndex As Integer, nTotalPages As Integer, nBound As Integer

Dim fso As Object

Const nSteps = 200 ' 修改这里控制每隔几页分割一次

Set fso = CreateObject("Scripting.FileSystemObject")

Set oSrcDoc = ActiveDocument

Set oRange = oSrcDoc.Content

nTotalPages = ActiveDocument.Content.Information(wdNumberOfPagesInDocument)

oRange.Collapse wdCollapseStart

oRange.Select

For nIndex = 1 To nTotalPages Step nSteps

Set oNewDoc = Documents.Add

If nIndex + nSteps >nTotalPages Then

nBound = nTotalPages

Else

nBound = nIndex + nSteps - 1

End If

For nSubIndex = nIndex To nBound

oSrcDoc.Activate

oSrcDoc.Bookmarks("\page").Range.Copy

oSrcDoc.Windows(1).Activate

Application.Browser.Target = wdBrowsePage

Application.Browser.Next

oNewDoc.Activate

oNewDoc.Windows(1).Selection.Paste

Next nSubIndex

strSrcName = oSrcDoc.FullName

strNewName = fso.BuildPath(fso.GetParentFolderName(strSrcName), _

fso.GetBaseName(strSrcName) &"_" &(nIndex \ nSteps + 1) &"." &fso.GetExtensionName(strSrcName))

oNewDoc.SaveAs strNewName

oNewDoc.Close False

Next nIndex

Set oNewDoc = Nothing

Set oRange = Nothing

Set oSrcDoc = Nothing

Set fso = Nothing

MsgBox "结束!"

End Sub


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

原文地址: http://outofmemory.cn/tougao/12083500.html

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

发表评论

登录后才能评论

评论列表(0条)

保存