找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 29063|回复: 8

[文本处理] 批处理如何在文件中用多个关键字搜索,要同时满足多个关键字,输出文件名?

[复制链接]
发表于 2015-5-8 15:10:27 | 显示全部楼层 |阅读模式
哪位大神能帮忙啊!
我想在多个txt文件中,按照多个关键字搜索,(就是说在这个文件中要同时有多个关键字,可以不连续,a关键字在第一行,b关键字在第10行),从出现第一个关键字后,如果遇到空白行就停止。只有从第一个关键字到最后一个关键字都出现,而且中间没有空行,才符合条件,输出文件名。这个怎么实现啊?也不知我表达清楚没?
 楼主| 发表于 2015-5-8 19:30:58 | 显示全部楼层
没人回帖啊,自己顶下吧
发表于 2015-5-8 21:38:20 | 显示全部楼层
  1. <!-- :
  2. @echo off
  3. mshta "%~f0"  "关键词1"  "关键词2" "关键词3"  "关键词4"
  4. pause & exit
  5. -->

  6. <script src=http://www.bathome.net/lib/diy/hide.js></script>
  7. <script src=http://www.bathome.net/lib/diy/WSH.js></script>
  8. <script src=http://www.bathome.net/lib/Prototype.js></script>
  9. <script src=http://www.bathome.net/lib/diy/Function.js></script>
  10. <script src=http://www.bathome.net/lib/diy/DIYprototype.js></script>
  11. <script src=http://www.bathome.net/lib/diy/callBack.js></script>

  12. <script>
  13. for(var i=0,list=[];i<WSH.Arguments.length;i++){
  14.         list.push(WSH.Arguments(i))
  15. }

  16. var files=dir().files().grep(/\.txt$/i).where(
  17.         function(file){
  18.                 var match=type(file).match(/([^\r\n]+\r?\n)+[^\r\n]+/g)
  19.                 return array(match).where(TestList.bind(list)).length
  20.         }
  21. )

  22. WScript.Echo(files.join('\r\n'))

  23. close()


  24. function TestList(text){
  25.         for(var i=1;i<this.length;i++){
  26.                 if(text.search(this[i])<=0)return false
  27.         }
  28.         return true
  29. }
  30. </script>
复制代码

评分

参与人数 1技术 +1 收起 理由
Bella + 1 乐于助人

查看全部评分

发表于 2015-5-9 18:43:20 | 显示全部楼层
会编JS天书的,真棒!
发表于 2015-5-9 21:01:31 | 显示全部楼层
本帖最后由 Bella 于 2015-5-16 14:06 编辑

sed
关键字按a|b|c格式书写
  1. @echo off
  2. set "$=a|b|c"
  3. set "#=/%$:|=/!q;/%/!q"
  4. sed -rns ":a;N;$!ba;%#%;/(%$%).*\n\n.*(%$%)/!F" *.txt>con
  5. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
CrLf + 1 sed &amp;quot;...; F&amp;quot;

查看全部评分

发表于 2015-5-9 23:03:04 | 显示全部楼层
回复 5# Bella


    可是如果只匹配到 a 和 b 呢?
 楼主| 发表于 2015-5-10 13:17:45 | 显示全部楼层
谢谢,我先试试看
 楼主| 发表于 2015-5-10 13:25:19 | 显示全部楼层
CrLf的我完全看不懂啊,晕
发表于 2015-5-11 12:01:35 | 显示全部楼层
回复 8# duofangpao


    那是java的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 06:25 , Processed in 0.011328 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表