删除包含字符串的所有文件

时间:2012-12-21 09:18:53

标签: windows file cmd grep delete-file

我有大约40,000个文件和一个标识符列表。

例如: AB000001, AB000002, AB000004, AB000005, AB000006, AB000007

每个文件都应包含一个标识符(不在文件名中),我需要查找不在我列表中的所有文件。

我认为最好的办法是运行一个小程序或命令来删除包含我的任何标识符列表的所有文件。

所以在我运行命令/程序后,我将留下一个包含AB000003的文件。

有没有人知道已经存在的技术或自由软件可以帮助我实现这一目标,而不是从头开始写一些东西。

编辑:忘了添加文件是.xml,我有很多标识符(35,000)所以不能真正手动执行。

4 个答案:

答案 0 :(得分:2)

假设您在新行中的每个Id中都有您的标识符,请执行以下操作:

for /F "tokens=* delims=*" %E in (identifiers.txt) DO (grep -l "%E" *.xml)

您可以将输出重定向到>> %E.txt,以便获得每个标识符的结果

答案 1 :(得分:1)

您可以创建一个list.txt文件,其中包含您需要匹配的所有标识符。 然后,在不使用第三方软件但使用FINDSTR的情况下,您可以获取不包含匹配项的文件的所有名称:

findstr /L /V /G:list.txt *.txt

答案 2 :(得分:0)

Grep for Windows看起来像是工作的野兽。按理说你可以使用* nix-like grep命令来完成工作。

评估版本功能齐全。

你可能......

grep -l "AB000003" *

列出您要识别的文件。

答案 3 :(得分:0)

准备一个包含ID列表的文本文件,每行一个ID。称之为ID.LIST

AB000001
AB000002
AB000004
AB000005
AB000006
AB000007
etc.

使用免费gnu grep for Windows,以下命令将列出所有不包含任何ID字符串的xml文件。我添加了-w选项(匹配整个单词)以防止“AB000001”匹配“AB0000011”之类的内容。

grep -L -w -f ID.LIST *.xml