Команда find - пошук рядка символів в файлі

Відео: Пошук файлів за вмістом і тексту всередині файлів

команда FIND використовується для пошуку текстової рядки в одному або декількох файлах. Якщо шлях не заданий, команда FIND виконує пошук в тексті консолілібо в тексті, переданому по конвеєру іншою командою (в тексті, що є висновком команди, що виконується в ланцюжку з FIND).

Формат командного рядка:

FIND [/ V] [/ C] [/ N] [/ I] [/ OFF [LINE]] "рядок" [[диск:] [шлях] ім`я файлу [...]]Параметри команди:

/ V - Висновок всіх рядків, НЕ містять задану рядок.
/ C - Висновок тільки загального числа рядків, що містять задану рядок.
/ N - Висновок номерів відображаються рядків.
/ OFF [LINE] - Чи не пропускати файли з встановленим атрибутом "Автономний".
/ I - Пошук без урахування регістру символів.
"Рядок" - Шуканий рядок.
[Диск:] [шлях] ім`я файлу - Один або кілька файлів, в яких виконується пошук.

Приклади використання:

FIND /? - видати довідку по використанню команди.

find / I myfile.txt "новина" - виконати пошук рядка новина без урахування регістру символів в текстовому файлі myfile.txt . За замовчуванням, якщо не заданий параметр / Iрегістр символів враховується.

find / C myfile.txt "новина" - відобразити загальну кількість рядків, що містять текст "новина".




FIND / I% TEMP% *. Tmp "windows" - виконати пошук в каталозі тимчасових файлів для всіх файлів з розширенням tmp рядків, що містять текст windows без урахування регістру символів.

FIND / I% TEMP% *. Tmp "windows" | more - то ж, що і в попередньому прикладі, але з використанням посторінкового виведення на екран.

ipconfig / all | FIND "DNS" - з виведення команди ipconfig / all знайти рядки, які містять текст DNS

Зверніть увагу, на нехарактерний синтаксис цієї команди - рядок пошуку обов`язково полягає в подвійні лапки, тому імена та шляхи файлів, що містять пробіли, обробляються некоректно. Для пошуку в таких файлах можна скористатися перенаправленням введення (символ lt; )




find "html" lt; "C: Documents And Settings USER settings.xml"

Відповідно, приклад з пошуком в тимчасових файлах, наведений вище, в ОС Windows XP (значення змінної% TEMP% за замовчуванням приймає шлях з пробілами) буде виполнятьсяверно при використанні наступної команди:

FIND / I "windows" lt; "% TEMP% textfile.tmp"

Природно, шаблон імені файлу * .tmp використовувався в прикладі вище, при перенаправлення вводу застосовувати не можна (перенаправлення можна виполнятьдля конкретного файлу - textfile.tmp в прикладі) і для організації пошуку текстової рядки в декількох файлах можна скористатися циклічної обробкою їх вмісту, наприклад, за допомогою командиFOR.

@ECHO OFF
for %% i in ( "% TEMP% *. tmp") do FIND %% i "windows"
. . .


застосування команди FIND для пошуку рядка в результатах виведення іншої програми використовується, наприклад, для визначення доступності мережевого вузла за допомогою команди PING . утиліта ping.exe не повертає прізнакдоступності пінгуемого адреси в значенні змінної ERRORLEVEL (Ненульове значення ERRORLEVEL утиліта ping.exe формує тільки в тому випадку, якщо задані помилкові параметри командного рядка). Тому, для определеніядоступності IP- адреси, використовується аналіз виведення ping.exe, який відрізняється для доступного і недоступного вузла. Так, наприклад, якщо пінгуемий наявно, то в повідомленні буде присутній значення TTL:

Обмін пакетами з yandex.ru [87.250.250.11] по 32 байт:
Відповідь від 87.250.250.11: число байт = 32 час = 10мс TTL = 55

А в разі недоступності, рядок символів "TTL" в виводяться результати відсутня. Якщо рядок символів "TTL" знайдена, то FIND сформує значення змінної ERRORLEVEL рівним 0Таким чином, для визначення факту доступності вузла в командному файлі можна скористатися следующімспособом:

ping -n 1 COMPUTER | find / I "TTL" gt; nul
if% ERRORLEVEL% == 0 goto LIVE
ECHO computer не доступний
підпрограма обробки недоступного стану
. . .
Exit
: LIVE - початок підпрограми обробки стану доступності вузла
. . .
. . .

команда ping використовується в ланцюжку з командою find (Конвеєр) і результати її виведення використовуються в качествеввода для пошуку рядка "TTL". У конвеєр додана команда перенаправлення стандартного виводу на фіктивне пристрій nul, тобто придушення виведення. Ключ -n 1 задає одноразовий опитування вузла COMPUTER для ping.exe.

Поділися в соціальних мережах:

Схожі
Команда more - посторінковий вивід на екран консолі.Команда more - посторінковий вивід на екран консолі.
Команда move - перейменування або переміщення файлів і каталогівКоманда move - перейменування або переміщення файлів і каталогів
Команда attribКоманда attrib
Команда find в linuxКоманда find в linux
Команда doskey - редагування і повторний виклик команд windows- створення макросів doskey.Команда doskey - редагування і повторний виклик команд windows- створення макросів doskey.
Команда compКоманда comp
Команда echo - висновок тексту на екран консоліКоманда echo - висновок тексту на екран консолі
If - оператор умовного виконання команд в командних файлах windowsIf - оператор умовного виконання команд в командних файлах windows
Команда findstrКоманда findstr
Oppo готує дві модифікації смартфона find 7Oppo готує дві модифікації смартфона find 7
» » Команда find - пошук рядка символів в файлі