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

[文本处理] [已解决]有没有好点的文本查找命令,find太慢

[复制链接]
发表于 2012-6-26 15:08:35 | 显示全部楼层 |阅读模式
1.txt
  1. 1
  2. 2
  3. 3
复制代码
2.txt
  1. 1 A
  2. 2 B
  3. 3 B
  4. 4 C
  5. 5 C
  6. 6 C
复制代码
依次查找1.txt的在2.txt行,得到3.txt
  1. 1 A
  2. 2 B
  3. 3 B
复制代码
find依次太慢了for /f "tokens=1" %%a in (1.txt) do (findstr %%a "2.txt" >>3.txt)
问问有没有好点的,第三方的都行

评分

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

查看全部评分

发表于 2012-6-26 15:44:46 | 显示全部楼层
  1. findstr /g:1.txt 2.txt >3.txt
复制代码
 楼主| 发表于 2012-6-26 16:19:17 | 显示全部楼层
本帖最后由 jzsgyml 于 2012-6-26 23:47 编辑

回复 2# forfiles


    速度一样,几万行需要几十分钟,但是你这样写对硬盘有好处,他好像是扫描几百了保持一次。我那个写法是一行一次,那扫描的时候硬盘嗷嗷响
发表于 2012-6-26 18:38:06 | 显示全部楼层
回复 3# jzsgyml


    能否把你的测试过程和测试结果贴出来看看?
 楼主| 发表于 2012-6-28 00:44:30 | 显示全部楼层
回复  jzsgyml


    能否把你的测试过程和测试结果贴出来看看?
forfiles 发表于 2012-6-26 18:38



    谢谢你在另外一个帖子的回复,这两个需求点差不多,传说中的第三方就是grep命令了。1秒钟,几万就遍历完毕了,用findstr 4分钟4000行。
  1. grep -Ff 1.txt 2.txt >3.txt
复制代码
发表于 2012-6-28 03:40:17 | 显示全部楼层
回复 5# jzsgyml


    是的,grep/sed/gawk这些命令效率通常都相当高。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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