问题描述:
不要太烦的步骤
解析:
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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)