с помощью команды FIND найти две строки из одной строки с помощью cmd.exe - PullRequest
1 голос
/ 04 июня 2009

Как безопасно определить следующую строку из файла с помощью команды FIND (команды cmd.exe по умолчанию), в то время как имя minnie может быть любым? просто в строке FROM: me@my.com.

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

не следует смешивать с этой строкой TO:

To: <me@my.com>

например. эта строка командного файла не работает должным образом:

find "me@my.com" abc.txt

Ответы [ 3 ]

4 голосов
/ 04 июня 2009

Попробуйте две конвейерные команды поиска, например:

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

Первый выполняет поиск всех строк, содержащих «me@my.com», а второй фильтрует их, оставляя только те строки, которые содержат «From:».

4 голосов
/ 05 июня 2009

Вы можете использовать findstr вместо find, который обладает более продвинутыми возможностями, такими как сопоставление регулярных выражений.

findstr /r /c:"^From:.*<me@my.com>" test.txt

найдет указанный адрес электронной почты, только если строка начинается с «От:».

findstr также включено по умолчанию, по крайней мере, начиная с Windows 2000.

0 голосов
/ 04 июня 2009

Я действительно не думаю, что вы сможете достичь этого с помощью find , поскольку find ищет только буквальное совпадение и не может использовать подстановочные знаки регулярные выражения.

Если у вас есть опция, вы можете установить пакет UnxUtils и использовать для этого grep. Это порт общих утилит Unix для Win32. Вы можете найти его по адресу: [http://unxutils.sourceforge.net/][1]

Затем вы должны выполнить команду grep, например:

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

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...