【发布时间】:2018-11-27 13:48:42
【问题描述】:
我正在尝试使用 FINDSTR 搜索一个充满文本文件的文件夹,使用字符串文本文件,然后输出到 results.txt
字符串文本文件包含 3,200 行,每行包含一个作者姓名和相关的书名。例子:
George Orwell 1984
H. G. Wells War of the Worlds
Isaac Asimov I, Robot
我还有一个文件夹,其中包含十几个电子书文件名的文本列表(有些列表超过 50 万行。),例如:
George Orwell - 1984 (epub).rar
H G Wells - War of the Worlds (pdf).rar
Isaac Asimov - [Robot 0.1] - I, Robot (Mobi).rar
我需要在文件名的文本文件中搜索 3,200 个作者和标题,并将结果输出到第三个文本列表。
文件名还包含其他内容,如系列信息、格式等,因此我正在寻找任何包含这些作者姓名和标题但与搜索字符串不完全匹配的行,如我上面的示例所示。
这是我尝试过的。它可以匹配确切的字符串,但我看不到如何让它找到包含其他内容的文件名以及搜索字符串中的所有单词。
findstr /g:C:\strings.txt *.txt >>C:\results.txt
谁能帮我写代码。谢谢。
【问题讨论】:
-
你的方法行不通。默认情况下 findstr 是基于正则表达式的,其中每个带有空格的搜索都是 ORed。所以
George Orwell 1984将匹配当前.txt 文件中包含George或Orwell或1984的任何行。 Stack Overflow 也不是免费的脚本编写服务。展示您自己的编码尝试,我们或许能够查明您的错误并引导您找到解决方案。 -
findstr不能进行近似搜索,所以如果没有一个搜索字符串(作者和标题)完全匹配(除此之外),应该如何查找文件?也许您调整列表文件C:\strings.txt并在之后进行搜索... -
LotPings,如果你真的阅读了我的帖子,你会看到我确实发布了我自己的编码......
标签: batch-file cmd findstr