[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

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)
问问有没有好点的,第三方的都行
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

  1. findstr /g:1.txt 2.txt >3.txt
复制代码

TOP

本帖最后由 jzsgyml 于 2012-6-26 23:47 编辑

回复 2# forfiles


    速度一样,几万行需要几十分钟,但是你这样写对硬盘有好处,他好像是扫描几百了保持一次。我那个写法是一行一次,那扫描的时候硬盘嗷嗷响

TOP

回复 3# jzsgyml


    能否把你的测试过程和测试结果贴出来看看?

TOP

回复  jzsgyml


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



    谢谢你在另外一个帖子的回复,这两个需求点差不多,传说中的第三方就是grep命令了。1秒钟,几万就遍历完毕了,用findstr 4分钟4000行。
  1. grep -Ff 1.txt 2.txt >3.txt
复制代码

TOP

回复 5# jzsgyml


    是的,grep/sed/gawk这些命令效率通常都相当高。

TOP

返回列表