Команда find в командной строке windows

  • 01.02.2020
  • 12 261
  • 0
  • 04.08.2021
  • 10
  • 10
  • 0

FIND - описание команды и примеры использования

  • Содержание статьи
    • Описание
    • Синтаксис
    • Параметры
      • Примечания
    • Примеры
    • Справочная информация
    • Добавить комментарий

FIND — Поиск заданной строки текста в файле или нескольких файлах.

Описание

После поиска в заданных файлах команда find выведет на экран все строки из этих файлов, содержащие заданный образец.

Синтаксис

find [/v] [/c] [/n] [/i] "строка" [[диск:][путь]ИмяФайла[...]]

Параметры

Параметр Описание
/v Выводит все строки, не содержащие строку, заданную параметром строка
/c Подсчет строк, содержащих строку, указанную параметром строка, и отображение общего количества
/n Выводит номера строк перед самими строками
/i Задает поиск без различия строчных и заглавных букв
«строка_поиска» Обязательный параметр. Указывает группу символов, поиск которой будет производиться. Необходимо заключить параметр строка в кавычки («строка»)
[диск:][путь] ИмяФайла Задает местоположение и имя файла, в котором будет производиться поиск заданной строки символов
/? Отображение справки в командной строке

Примечания

  • Если ключ /i не указан, команда find ищет именно то, что указано в параметре строка. Например, для команды find символы «a» и «A» являются различными. Если используется ключ /i, команда find не различает строчные и прописные буквы, и символы «a» и «A» являются одинаковыми.
  • Если строка поиска содержит кавычки, при вызове команды каждая кавычка в строке поиска должна быть заменена двумя символами кавычек («СтрокаСодержания»»Кавычки»).
  • Если имя файла пропущено, find действует как фильтр, получая ввод из стандартного источника вывода (обычно клавиатура, канал или файл перенаправления), и выводит все строки, содержащие параметр строка.
  • Параметры и ключи команды find могут быть заданы в произвольном порядке.
  • Подстановочные знаки (* и ?) не могут быть использованы в именах файлов и расширениях, задаваемых в команде find. Чтобы искать строку в множестве файлов, указанных с помощью подстановочных знаков, можно использовать команду find в команде for.
  • Если в одной команде заданы ключи /c и /v, команда find выведет на экран количество строк, которые не содержат заданную строку поиска. Если в одной команде указаны оба ключа: /c и /n, команда find игнорирует ключ /n.
  • Команда find не распознает символ перевода строки. Когда команда find используется для поиска текста в файле, который содержит символы перевода строки, необходимо ограничить строку поиска текстом, который может быть найден между символами перевода строки (строка не может прерываться символом перевода строки). Например, find не найдет совпадение для строки «файл налогов» если перевод строки в файле стоит между словами «файл» и «налогов».

Примеры

Для вывода всех строк из файла Pencil.ad, которые содержат слова «Точилка» служит следующая команда:

find "Точилка" pencil.ad

Для поиска строки, содержащей текст, указанный в кавычках, необходимо сначала заключить в кавычки всю строку. Во-вторых, необходимо использовать двойные кавычки для каждых кавычек, содержащихся в строке. Для поиска фразы «Точилка» (именно с ковычками в файле Pencil.ad:

find ""Точилка"" pencil.ad

Если поиск требуется провести в нескольких файлах, следует использовать команду find с командой for. Для поиска файлов с расширением .bat, содержащих строку «PROMPT», можно использовать следующую команду:

for %f in (*.bat) do find "PROMPT" %f

Для поиска на жестком диске C файлов, содержащих строку «CPU» и отображения их имен используйте символ канала (|), чтобы направить результаты команды dir в команду find:

dir c:\ /s /b | find "CPU"

Так как команда find проводит поиск, различая строчные и заглавные буквы, а команда dir выводит результаты заглавными буквами, необходимо задать строку «CPU» заглавными буквами или использовать ключ /i в команде find.

Справочная информация

На чтение 6 мин Просмотров 1.6к. Опубликовано

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

В былые времена, когда я был еще полным чайником в компьютерах, мне пришлось услышать про волшебные “виртуальные диски”. В то время размер моего винчестера составлял 2 гигабайта, и на счету был каждый байт, я каждую картинки сжимал для экономии места, зато в системе был один фильм и одна игра “Age Of Empires 2”, я ее уже раз сто проходил. Так вот, я почему то решил, что “виртуальный диск”, это дополнительная память, которая может появится из воздуха… Где то два дня пытался всячески установить через Диспетчер устройств еще один винт на 500 метров, при том, что такого оборудования в системном блоке и подавно не было…

Утилита find командная строка

FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] «искомые_значения» [[диск:][путь]имя_файла[ …]]

И так, смотрим на описание ключей:

[/V] – произвести вывод всех строк, которые НЕ содержат заданной.

[/C] – выводится только общее число строк, содержащих заданную.

[/N] – Вывод номеров отображаемых строк.

[/I] – Поиск без учета регистра символов.

[/OFF[LINE]] – Не пропускать файлы с установленным атрибутом «Автономный».

«искомые_значения» – собственно, строчка, поиск которой производится из командной строки Windows

[[диск:][путь]имя_файла[ …]] – тут мы прописываем один или несколько имен документов, в которых нужно произвести поиск через командную строку, можно использовать подстановочные знаки.

Хорошо, теперь давайте попробуем написать несколько примеров.

Создадим на диске D: папку TEST, в который благополучно поместим три файла с расширениями  .pdf, .txt и .mf. Для начала попробуем найти слово «const» во всех документах с расширением txt:

FIND «const» D:TEST*.txt

На выходе мы получим следующую информацию:

———- D:TESTSEND_MAIL_DATA.VBS.TXT
соnst toMSg =»to@yandex.ru» ‘получатель
соnst fromMSg =»from@gmail.com» ‘отправитель
соnst subjMsg = «Администратор» ‘субъект
соnst sndUsr =» login» ‘логин
соnst sndPswd =»password» ‘пароль
cоnst smtpSrvr = «smtp.gmail.com» ‘почтовый сервер

———- D:TESTSEND_MAIL_TEXT.VBS.TXT
cоnst toMSg =»to@yandex.ru»
cоnst fromMSg =»from@gmail.com»
cоnst subjMsg = «Администратор»
cоnst sndUsr =» login»
сonst sndPswd =»password»
сonst smtpSrvr = «smtp.gmail.com»

———- D:TESTSUBDOMEN_SCAN.WSF.TXT

Как видим, мы получили список всех тех строчек, где встречается искомое слово.

Теперь попробуем сделать поиск через командную строку слова “samsung” во всех pdf файлах:

FIND «samsung» D:TEST*.pdf

Слово «samsung» встречается в одном документе, но, утилита FІND найти его не смогла, стоит обратить внимание, что и стандартный поиск операционной системы Windows также ничего не нашел, видимо, Google в этом все же больше преуспел.

Теперь попробуем усложнить задачу. Дело в том, что Windows ищет фразу не только в контексте файла, но и в его свойствах. Посмотрим, будет ли утилита find командной строки Windows производить поиск из описания. Я специально, по одному из каждого типа файлов (.pdf, .txt и .mf) вставлю в описание фразу «Victoria Sanremo». И так, приступим:

FIND «Victoria Sanremo» D:TEST*.*

В результат выполнения команды find, командная строка ничего не нашла в свойствах документов. Кроме утилиты FІND, есть еще и CMD FINDSTR, которая обладает немного большими возможностями.

Утилита FINDSTR командная строка

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

FINDSTR [/B] [/E] [/L] [/R] [/S] [/I] [/X] [/V] [/N] [/M] [/O] [/P] [/F:файл][/C:строчка] [/G:файл] [/D:список_папок] [/A:цвета] [/OFF[LINE]] «искомые_значения»[[диск:][путь]имя_файла[ …]]

/B – Данный ключ определяет поиск образца лишь в началах строчек.

/E — Данный ключ определяет поиск образца лишь в конце.

/R – Фразы и слова будут приниматься как регулярные выражения.

/S – Производит поиск файлов через командную строку в текущем каталоге и всех его подпапках.

/I – Данный ключ определяет, что поиск фразы из командной строки будет вестись без учета регистра.

/X – Производит вывод только тех строчек, которые содержат точное совпадение.

/V — Производит вывод только тех строчек, которые не содержат точного совпадения с искомой фразой.

/N — Производит вывод номера строчки (которые содержат точное совпадение) и ее содержимое.

/M — Производит вывод лишь имени документа, который содержит совпадение.

/O – Вывести список найденных строк через пустую строчку.

/P – Данный параметр определяет, что произойдет пропуск всех строк, которые содержат непечатаемые символы.

/OFF[LINE] — Не пропускает те документы, у которых установлен атрибут «Автономный».

/A:цвета – Шестнадцатеричный код цвета, для получения справки можете ввести команду «COLOR /?»

/F:файл – Производит чтение списка файлов из заданного документа.

/C:строчка – Использовать значение данного параметра как искомую фразу поиска.

/G:файл – Позволяет получить список строк из заданного документа.

/D:список_папок – Тут через точку с запятой мы можем задать список каталогов, в которых нужно произвести поиск через командную строку.

“искомые_значения” – Собственно, то, что мы ищем.

[диск:][путь]имя_файла — Задаем путь к документу (документам)

Что бы разделить между собой искомые фразы, между ними вставляется пробел, если параметр не содержит префикса /C. Например,

FINDSTR «Привет мир» data.txt

ищет «Привет» или «мир» в файле data.txt, а команда

FINDSTR /C:»Привет мир» data.txt

ищет фразу «Привет мир» в  файле data.txt.

Регулярные выражения являются своеобразным бонусом, которым не то, что оболочка, но и язык программирования не всегда может похвастаться. При поиске из командной строки, регулярные выражения позволяют задавать собственные шаблоны (для справки по некоторым значениям введите в cmd findstr/? ), они также используются в сценариях сервера Windows Script Host, за это отвечает отдельный объект.

on April 19, 2011

Using ‘Find’ command,  we can search for specific text in a set of files. Find below the syntax of this command with examples. Note that windows find command is different from the Linux find command in functionality. Linux find command is used to search for files that match the given criteria. But the windows find command is useful to search files for the lines that match the given string. The windows command that matches partially with Linux find command’s functionality is dir command.

Find the lines of a file that have the specified string

find "string" filename

Example:

C:\>find "Windows" C:\boot.ini
---------- C:\BOOT.INI
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect

C:\>

To print line numbers along with the lines

find /N "string" filename

Ex:

C:\>find /N "Windows" C:\boot.ini
---------- C:\BOOT.INI
[5]multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect

C:\>

To ignore case in searching for the string, we can add /I switch.

find /I /N "string" filename

In the below example, we don’t find any matching lines when we search for ‘windows’. In the next command, I have added /I and it shows the matching line ignoring the case differences.

C:\>find /N "windows" C:\boot.ini

---------- C:\BOOT.INI

C:\>find /N /I "windows" C:\boot.ini

---------- C:\BOOT.INI
[3]default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[5]multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect

C:\>

To find the lines that are not matching with the given string:

We can use /V switch for this case. Please find the command syntax below.

find /V  "string" filename

Ex:

C:\>find /N "windows" C:\boot.ini
---------- C:\BOOT.INI

C:\>find /N /I "windows" C:\boot.ini

---------- C:\BOOT.INI
[3]default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[5]multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect

C:\>

windows find feature

Is Windows search too slow for you? Learn how to speed up your search using the find command in the Command Prompt window.

Windows has some built-in search capabilities, but they may not be to your liking. Cortana or the standard Search box on the Taskbar and the Search box in File Explorer in Windows 10 allow you to search through file contents, but they can be slow, especially the File Explorer search.

There’s a faster way to search the contents of files on your hard drive using the command line. The find command searches for text strings in files and returns the lines of text from the files in which the text string was found.

NOTE: The find command is not suitable for large files or large numbers of files.

Today we’ll cover how to use the find command and we’ll provide some examples.

Open the Command Prompt Window with Administrative Privileges

Opening the Command Prompt window as administrator is not necessary. However, it does help you avoid annoying confirmation dialog boxes. Just be careful what commands you run as administrator on the command line. Using the find command as administrator is safe as it doesn’t change or delete any files.

Enter cmd.exe in the Search box on the Taskbar. Then, right-click on the Command Prompt item under Best match and select Run as administrator from the popup menu.

Open Command Prompt as Administrator

If the User Account Control dialog box displays, click Yes to continue.

NOTE: You may not see this dialog box, depending on your User Account Control settings. We don’t recommend disabling UAC entirely.

UAC dialog box

Switches and Parameters for the find Command

Most commands have optional switches that modify the default operation of the command. You can get help to see all the available switches for the find command by typing the following line at the prompt and pressing Enter.

find /?

Find command help

The switches can be lowercase or uppercase.

For the “string” parameter, you must surround the string with double quotes, otherwise the find command will not work and will return an error.

The [drive:][path]filename parameter can be anything from a drive letter to a single file or multiple files.

Syntax for the find Command

A command’s syntax is a specific way to organize the command and its switches and parameters. The following is the general syntax for the find command.

find [switches] "string" [pathname/s]

The switches can be in any order as long as they’re before the “string” parameter. The brackets [] indicate that the switch or parameter is optional.

Search a Single Document for a Text String

First, we’ll show you how to search one document for all occurrences of a text string. The following command searches the example1.txt file for the phrase “groovypost is the best tech site”.

find "groovypost is the best tech site" "C:\Users\Lori\Documents\FindCommandExamples\example1.txt"

NOTE: If there are spaces in any part of the path or file name, you must put quotes around the entire path, like we did in the above command. The quotes are not really needed in this case, but it doesn’t hurt to have them.

Did not find text string

Notice that the phrase was not found in the above example (nothing is listed below the path to the file), even though it is in the file. That’s because the case in “groovypost” did not match what was in the file, which is “groovyPost”. Add the “/i” (lowercase or uppercase letter “i”) switch right after the find command (before the phrase) to ignore the case when looking for the text phrase.

find /i "groovypost is the best tech site" "C:\Users\Lori\Documents\FindCommandExamples\example1.txt"

Now, the phrase was found and the entire line containing the phrase prints to the screen below the path to the file being searched.

Text string found

Search Multiple Documents for the Same Text String

Now that you can search one file for a text string, let’s search multiple files for the same text string.

You can specify multiple files to search in the find command by putting the path to each file in quotes separated by a space.

find /i "groovypost" "C:\Users\Lori\Documents\FindCommandExamples\example1.txt" "C:\Users\Lori\Documents\FindCommandExamples\example2.txt"

You could also search all text files in a directory using the wildcard character, which is an asterisk (*), as shown in the following command.

find /i "groovypost" "C:\Users\Lori\Documents\FindCommandExamples\*.txt"

The search term was found in both documents and the sentences in which they were found are listed under the full path to each file.

Search two files

Count the Number of Lines in a File

If you want to know how many lines there are in a file, you can use a combination of the type and find commands. The type command displays the contents of one or more text files.

We piped the results of the type command into the find command using the vertical bar (|). We used the “/v” switch to display all lines NOT containing the “” string, so every line with text will be counted. To display only the number of lines in the text file (not the lines themselves), we use the “/c” switch.

type C:\Users\Lori\Documents\FindCommandExamples\example1.txt | find "" /v /c

Count number of lines

Send the Output of Another Command to the Find Command

You can also search all file names in a directory for a certain string by piping the output of the dir command to the find command.

For example, we got the directory listing of the C:\Users\Lori\Documents\FindCommandExamples directory and any subdirectories in that directory (“/s” switch). We also specified to use the bare format with no heading information or summary (“/b” switch) and to display the listing in the same format as the wide list format (“/w” switch) but sorted by column (“/d” switch).

Then, we pipe (|) the output of the dir command into the find command, only adding “example” as the parameter. We didn’t add any switches to the find command. The file names to search come from the output of the dir command.

dir "C:\Users\Lori\Documents\FindCommandExamples" /s /b /d | find "example"

Redirect dir command to find command

Do you prefer using the find command or the Search box in File Explorer? How have you used the find command? Share your ideas and examples with us in the comments below.

На чтение 6 мин. Просмотров 13 Опубликовано

Find – еще один замечательный инструмент командной строки, о котором должен знать каждый пользователь Windows, поскольку его можно использовать для поиска содержимого файлов по определенным строкам текста.

Содержание

  1. Найти переключатели и параметры
  2. Найти синтаксис
  3. Давай попрактикуемся

Найти переключатели и параметры

Как и в случае любого инструмента на основе командной строки в Windows, существуют определенные параметры и параметры, которые вам необходимо знать, чтобы эффективно использовать инструменты. Они перечислены и объяснены ниже.

  1. /v – этот переключатель покажет все строки, которые не содержат строку слов, которую вы указали.
  2. /c – этот ключ указывает инструменту поиска подсчитать, сколько строк содержат ваши условия поиска.
  3. /n – этот переключатель показывает числа, соответствующие строкам.
  4. /i – этот ключ указывает find игнорировать регистр искомого текста.

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

  1. «Строка» . Строка будет содержать слова, которые вы ищете в своих документах. Вы всегда должны помнить, что этот раздел должен быть заключен в кавычки, иначе ваша команда выдаст ошибку.
  2. Путь . Этот параметр указывает местоположение, в котором вы хотите выполнить поиск. Это может быть как список дисков, так и конкретный, например, определение одного или нескольких файлов. Если вы не укажете путь, FIND попросит вас ввести текст или может принять текст, переданный другой командой. Когда вы будете готовы завершить ручной ввод текста, вы можете нажать «Ctrl + Z». Мы обсудим это позже.

Найти синтаксис

Как и любой инструмент в Windows, вам нужно знать, как вводить свои команды. Синтаксис ниже – идеальная модель.

 НАЙТИ [SWITCH] "Строка" [Pathname/s] 

В зависимости от вашей команды вы получите один из трех ответов% errorlevel%.

  1. 0 – Строка, которую вы искали, была найдена.
  2. 1 – Строка, которую вы искали, не была найдена.
  3. 2 – Это означает, что у вас был плохой переключатель или ваши параметры были неверными.

Давай попрактикуемся

Прежде чем мы начнем, вы должны загрузить наши три образца текстовых документов, которые мы будем использовать для теста.

  1. документ
  2. образец
  3. упражнение

Каждый из этих документов содержит абзац текста с несколькими похожими группировками слов. После того, как вы загрузили эти три документа, вы можете скопировать их в любую папку на вашем компьютере. Для целей данного руководства мы разместим все три текстовых документа на рабочем столе.

Теперь вам нужно открыть окно командной строки с повышенными правами. Откройте меню «Пуск» в Windows 7 и 10 или откройте функцию поиска в Windows 8 и выполните поиск CMD. Затем щелкните правой кнопкой мыши по нему и нажмите «Запуск от имени администратора». Хотя вам не нужно открывать окно командной строки с повышенными правами, это поможет вам избежать каких-либо надоедливых диалоговых окон подтверждения.

Наш учебник сегодня будет охватывать несколько простых сценариев, которые будут разработаны ниже.

  1. Искать в одном документе строку слов.
  2. Поиск нескольких документов для одной и той же строки слов.
  3. Подсчитайте количество строк в файле или нескольких файлах.

Сценарий 1. Поиск в одном документе строки слов.

Теперь, когда вы загрузили три документа, мы введем команду для поиска в текстовом файле с именем «упражнение» слов «martin hendrikx». Используйте команду, показанную ниже. Не забудьте поставить строку поиска в кавычки и изменить путь в соответствии с папкой, в которой хранятся ваши документы.

 найти "martin hendrikx" C: \ Users \ Martin \ Desktop \ exerc.txt 

Вы заметите, что никаких результатов не появилось. Не волнуйся, ты не сделал ничего плохого. Причина, по которой у вас нет результатов, в том, что FIND ищет точное соответствие вашей строке поиска. Попробуем еще раз, но на этот раз добавим ключ «/ i», чтобы FIND игнорировал регистр строки поиска.

 find/i "martin hendrikx" C: \ Users \ Martin \ Desktop \ exerc.txt 

Теперь вы можете видеть, что FIND вывел одну строку, соответствующую строке поиска, что означает, что она работает. Давайте попробуем это снова, но измените строку поиска на «суши»; если ваши результаты выглядят как на картинке ниже, вы сделали это правильно.

Сценарий 2. Поиск нескольких документов по одной и той же строке слов.

Теперь, когда вы знаете, как выполнять базовый поиск, давайте попробуем расширить диапазон поиска. Теперь мы будем искать в двух текстовых файлах (упражнение и образец) термин «суши». Сделайте это, введя следующую строку.Не забудьте изменить путь в соответствии с расположением ваших файлов и добавить ключ «/ i», чтобы при поиске не учитывался регистр.

 find/i "sushi" C: \ Users \ Martin \ Desktop \ exerc.txt C: \ Users \ Martin \ Desktop \ sample.txt 

Вы заметите, что поисковые термины были найдены в обоих документах, а предложения, в которых они были найдены, перечислены под соответствующими именами и местами файлов. Попробуйте еще раз, но на этот раз добавьте третий файл в команду НАЙТИ и вместо этого найдите слово «potato». Результаты вашего поиска должны выглядеть как на картинке ниже.

Обратите внимание, что текст, найденный в каждом документе, на самом деле является «картошкой», что означает, что даже если вы введете часть слова, вы увидите любые фразы, содержащие строку поиска. Кроме того, вы можете использовать эту команду для проверки всех текстовых файлов.

 find/i "sushi" C: \ Users \ Martin \ Desktop \ *. txt 

Сценарий 3. Подсчитайте количество строк в файле.

Если вы хотите узнать, сколько строк в файле, вы можете использовать команду поиска ниже. Не забудьте добавить пробел между всеми вашими переключателями. В этом случае мы заменим путь на файл «sample.txt». Если вам нужен только номер в качестве результата, используйте эту команду:

 введите C: \ Users \ Martin \ Desktop \ sample.txt | найти ""/v/c 

Если вам нужен номер и информация о файле, используйте эту команду:

 find/v/c “” C: \ Users \ Martin \ Desktop \ sample.txt 

Если вы хотите посчитать строки в нескольких файлах на рабочем столе, используйте следующую команду.

 find/v/c “” C: \ Users \ Martin \ Desktop \ *. txt 

Теперь вы можете поэкспериментировать с несколькими различными командами и ознакомиться с этим инструментом. Это может помочь сэкономить много времени в будущем после создания системы. Веселитесь и продолжайте ворчать.

Изображение предоставлено Littlehaulic на Flickr.com

  • Команда echo в командной строке windows
  • Команда dir в командной строке windows
  • Команда copy в командной строке windows
  • Команда config в командной строке windows 10
  • Коллекции иконок для windows 10