使用FIND命令从cmd.exe的一行中查找两个字符串

时间:2009-06-04 12:44:38

标签: batch-file

如何使用FIND(cmd.exe默认命令)安全地从文件中检测以下字符串,而名称minnie可以是什么?只是FROM:line上有me@my.com。

From: "Minnie" <me@my.com>

不应该混合到此TO行:

To: <me@my.com>

e.g。此批处理文件行无法正常工作:

find "me@my.com" abc.txt

3 个答案:

答案 0 :(得分:4)

尝试两个流水线查找命令,如下所示:

find "me@my.com" abc.txt | find "From:"

前者搜索包含“me@my.com”的所有行,后者搜索它们只留下包含“From:”的行。

答案 1 :(得分:4)

您可以使用findstr代替具有更高级功能的find,例如正则表达式匹配。

findstr /r /c:"^From:.*<me@my.com>" test.txt
只有当行以“From:”开头时,

才会找到指定的电子邮件地址。

默认情况下,

findstr也包含在Windows 2000以后。

答案 2 :(得分:0)

我真的不认为你能够通过 find 来实现这一点,因为 find 只查找文字匹配并且无法使用通配符或正则表达式。

如果您有选项,可以安装UnxUtils包并使用grep来执行此操作。它是Win32常见的Unix Utilities的一个端口。您可以在[http://unxutils.sourceforge.net/][1]

找到它

然后你会发出这样的grep命令:

grep "From.*me\@my\.com" abc.txt

希望有所帮助!