实用技巧:如何在大量文档中查找与替换单词

经常会遇上要在大量文件里查找和替换某个单词的情况,有没有什么简单的办法呢?

如果说是纯文本文件,即直接可以用记事本打开可以看到文件内容的都算文本文件。如果打开有乱七八槽的文字,就是某种专有格式了。对于纯文本文件,Windows早在DOS时代就提供了find命令。

Win+R键输入cmd就可以打开Dos窗口,输入find /N /I "a" *.txt|more, 这就代表查找当前目录下所有txt文件里包含"a" , 并忽略大小写。more的意思是分页,在结果中按空格键就可以翻页,不然查找结果太多的话就看不完全部结果


find.png

如果要替换的话,安装一个NotePad++, ctrl+f键打开搜索替换对话框


notepad.png

按箭头所示输入你需要的信息
查找结果如下


notepad2.png

确实无误后,重新Ctrl+f键,在替换为那里输入你要替换的部分,点“在文件中替换”即可。注意做好备份

那如果是Word文件怎么办呢?我们用Word自带的宏解决,新建一个宏


word1.png

然后输入以下程序
Sub Search()
Dim objDoc As Document
Dim strFile As String
Dim strFolder As String
Dim strFindText As String
Dim strReplaceText As String

strFolder = InputBox("请输入目录路径:")
strFile = Dir(strFolder & "" & "*.docx", vbNormal)
strFindText = InputBox("请输入要查找的单词:")
strReplaceText = InputBox("请输入要替换的单词:")

While strFile <> ""
Set objDoc = Documents.Open(FileName:=strFolder & "" & strFile)
With objDoc
With Selection
.HomeKey Unit:=wdStory
With Selection.Find
.Text = strFindText
.Replacement.Text = strReplaceText
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End With
objDoc.Save
objDoc.Close
strFile = Dir()
End With
Wend
End Sub

然后点击运行后,输入目录地址,要查找的字符串,要替换的字符串即可。注意做好备份


word2.png

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,347评论 19 139
  • 编辑配置文件的时候如果记不住目录名称可以用这个命令 效果如下 https://blog.csdn.net/qq_3...
    Albert陈凯阅读 5,553评论 0 0
  • 睡饱了很开心 早上十点第一次醒来,然后想着没有什么事情,就坦然继续睡了。期间应该是做了一些轻松的梦,下次醒来的时候...
    百界无疆KOKO阅读 1,885评论 0 0
  • 乌龟小姐问兔子先生他的梦想是什么 兔子先生说我没有梦想的 然后兔子先生随口反问道乌龟小姐为什么你这么执着呀 乌龟小...
    消失的安阅读 3,150评论 0 0
  • 出发! 首先春节前后从我麻麻那里听说,凭借2代身份证可以不用取票直接进站,所以我还挺期待这第一次高逼格的"刷脸"进...
    只克阅读 1,365评论 0 0