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

[文本处理] [已解决]批处理怎样在大文件里面查找某个关键字出现的次数?

[复制链接]
发表于 2013-6-5 09:58:22 | 显示全部楼层 |阅读模式
本帖最后由 lxningbat 于 2013-6-6 15:31 编辑

小的几百M,大的上G,有什么命令可以比较快速的现实么?

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2013-6-5 11:05:16 | 显示全部楼层
第三方了解的实在少,貌似这样可以的,论坛搜索下载一个sed.exe

  1. @echo off&chcp 437|graftabl>nul 936
  2. set /p "str=输入查找字符串:"
  3. if not defined str goto :eof
  4. set n=0
  5. for /f %%a in ('sed -n "/%str%/p" a.txt^|sed -n "$="') do set n=%%a
  6. echo 字符串%str%出现%n%次.
  7. pause
复制代码
发表于 2013-6-5 11:18:51 | 显示全部楼层
  1. find /c "bathome" a.txt
复制代码
  1. grep -c "bathome" a.txt
复制代码
发表于 2013-6-5 12:15:54 | 显示全部楼层
丢人哦,一看到个几G,不自觉的就觉得要用第三方,都忘了两个FIND处理大小文件都没什么差别~~
 楼主| 发表于 2013-6-5 14:10:15 | 显示全部楼层
回复 3# Python


    谢谢二们的回答!grep 相对我的问题较高的效率,但如果一行中包含了二个或以上的关键字呢那出现的次数要去计算?
发表于 2013-6-5 14:47:17 | 显示全部楼层
回复 5# lxningbat
  1. grep -o "bathome" a.txt | find /c /v ""
复制代码
  1. grep -o "bathome" a.txt | grep -c "bathome"
复制代码

评分

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

查看全部评分

发表于 2013-6-5 15:44:49 | 显示全部楼层
  1. gawk  "{t+=gsub(/bathome/,$0)}END{print t}" "a.txt"
  2. PAUSE
复制代码
 楼主| 发表于 2013-6-6 15:30:01 | 显示全部楼层
感谢各位的帮助,谢谢。,,,,测试中 grep 相对更快些
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-20 12:44 , Processed in 0.021381 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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