Команда «Найти» обычно подходит для большинства ваших нужд (см. Совет под названием link: / windows-Using_the_Find_Command [Использование команды поиска]), но есть также команда «Findstr», которая более эффективна для тех времен когда вам нужно найти строки при определенных обстоятельствах. В простейшей форме Findstr выглядит как Find:

C:\> FINDSTR "document" Barry?.tmp

Findstr принимает на несколько переключателей больше, чем Find, и вы можете увидеть полный список, набрав следующее:

C:\> FINDSTR /?

Первое отличие, которое вы заметите между выводом Find vs.

Findstr заключается в том, что последний добавляет к каждой найденной строке имя файла, в котором она находится: (См. Рисунок 1.)

image

Рисунок 1. Findstr отображает имена файлов в строке с найденной строкой.

В Findstr доступно более десятка переключателей, но вместо того, чтобы перебирать их все, я просто расскажу вам о некоторых из наиболее важных (imo) функций, доступных по сравнению с командой Find. Первое, что я упомяну, это то, что вы можете искать несколько строк одновременно. Если искомая строка содержит пробелы, Findstr предположит, что вы хотите найти строку1 или строку2 или строку3 и т. Д. Например, если вы хотите найти все строки, содержащие либо «документ», либо «текст», вы просто разделяете слова с таким пробелом:

(См. Рис. 2.)

image

Рисунок 2. Одновременный поиск двух строк.

Еще одна приятная особенность — Findstr может искать файлы в подкаталогах.

Допустим, у меня есть Barry1.tmp в моем каталоге \ Temp и Barry2.tmp в моем каталоге \ Temp \ Temp2. Из каталога \ Temp я могу использовать «/ S»

переключатель, чтобы указать Findstr поиск в подкаталогах. Выглядит это так:

(См. Рис. 3.)

image

Рисунок 3. Использование / S для поиска в подкаталогах.

Я мог бы показать вам гораздо больше функциональных возможностей, но последний действительно заслуживает особого внимания. Это концепция поиска с использованием регулярных выражений. «Введение в регулярные выражения» рассматривается в другом совете, но я хочу показать вам, как регулярное выражение можно использовать в Findstr.

Допустим, вы хотите найти слово «документ», но только в тех случаях, когда после них стоит знак препинания, например запятая или точка. Регулярное выражение для этого типа поиска — «документ [,.]». Вы указываете Findstr, что ваша строка поиска использует регулярное выражение, указав переключатель «/ R», и давайте добавим переключатель «/ N», чтобы мы увидели номера строк. В итоге вы получите следующее: (См. Рисунок 4.)

image

Рисунок 4. Поиск с использованием регулярного выражения.

У Findstr есть еще кое-что, но я надеюсь, что я достаточно разжил ваш аппетит, чтобы вы начали использовать его, когда вам нужно будет выполнить какой-то необычный поиск строк в файлах.

Этот совет (13505) применим к Windows 7, 8 и 10.