Как найти слово в папке с файлами
Довольно часто бывает такое — написал текст, сохранил, а под каким названием был файл, со временем забыл. Либо компьютер просто захламлен большим количеством мусора из файлов и отыскать нужный файл помогут как штатные средства ОС Windows, так и сторонние ПО.
Способ 1. Поиск через «Средства поиска» ОС Windows 10
Открываем каталог/папку, где предполагаем начать поиск файла (в моем случае это рабочий стол), в окне справа находим поле поиска, в котором будет написано: «Поиск: Рабочий стол» (если поиск подразумевается в другой папке, то вместо «рабочий стол» будет название папки). Щелкаем правой кнопкой мыши по этому полю и вводим слово или фразу по которой ходит найти файл.
В моем случае нашлось два файла, которые содержат внутри слово «Windows»:
Для поиска в документах MS Office необходимо перейти во вкладку «Поиск», в «Дополнительные параметры» отмечаем пункт «Содержимое файлов»:
Способ 2. Поиск через Total Commander
Открываем ПО Total Commander, на панели управления находим кнопку с «лупой» — кнопку поиска. Либо нажимаем «Команды» — «Поиск файлов. ». Либо нажимаем на клавиатуре сочетание клавиш «Alt+F7». Во всех трех случаях откроется окно поиска файлов. Во вкладке «Общие параметры» выбираем в пункте «Место поиска» путь, по которому будем производить поиск, далее отмечаем галочку «С текстом» и пишем искомую фразу или слово, по завершении нажимаем кнопку «Начать поиск»:
Если система найдет файлы, результат будет следующим:
Способ 3. Поиск через Notepad++
Открываем ПО Notepad++, щелкаем «Поиск» — «Найти в файлах», либо нажимаем на клавиатуре клавиши «Ctrl+Shift+F». В появившемся окне поиска в пункте «Папка» выбираем путь для поиска, а в пункте «Найти» указываем искомое слово, затем щелкаем кнопку «Найти все» и радуемся результату поиска:
Поиск текста в файлах через командную строку Windows
Недавно мы рассматривали поиск файлов через командную строку Windows. Сегодня поговорим о том, как найти внутри файлов нужный нам текст. Сделать это можно при помощи команды FIND.
Команда find сообщает имена файлов, в которых был найден искомый файл, и выводит строки, в которых он содержится.
Синтаксис команды find :
FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] «искомый_текст» [путь_к_файлу]
V — вывод всех строк, НЕ содержащих искомый текст;
C — вывод только общего числа строк, содержащих искомый текст;
N — вывод номеров строк;
I — поиск без учёта регистра символов;
OFF[LINE] — не пропускать файлы с атрибутом «автономный».
Для примера проверим все текстовые файлы в каталоге C:\test\ на наличие слова «текст».
Если посмотреть на скриншот ниже, то можно подумать, что ни один из файлов не содержит слова «текст». Конечно, это вполне допустимый вариант. Но есть и другое объяснение.
Дело в том, что по умолчанию текст в командной строке Windows отображается согласно кодовой странице CP866, а в файлах он в кодовой странице CP1251. Поэтому нам достаточно сменить кодовую страницу в текущем окне командной строки. О том, как это сделать, можно прочитать в статье по этой ссылке.
Теперь мы видим, что слово «текст» встречается во всех трёх файлах.
Теперь посмотрим на строки, в которых нет слова «текст»:
Такие оказались только в файле FILE_1.TXT.
Помните, что команда find по умолчанию учитывает регистр. Поэтому, написав в ней «Текст», мы не найдём подобного слова в файлах. Но регистр можно и проигнорировать:
На скриншоте ниже хорошо видно, что сперва команда не нашла слова «Текст» в файлах, так как в них оно записано без заглавных букв. Добавив /i , мы это исправили.
Допустим, нам нужно знать порядковые номера строк, в которых отсутствует слово «текст»:
Если мы захотим знать число строк, в которых присутствует искомое слово, тогда выполним команду:
А если нам нужно знать число строк, где это слово отсутствует, тогда пример команды такой:
Хотя до этого в примерах мы искали отдельное слово, find спокойно ищет и выражения:
Особенностью команды find является то, что искомый текст обязательно нужно заключать в кавычки. Это приводит к трудностям, если в пути к файлам (и в именах файлов) содержится пробел. В таком случае нужно воспользоваться перенаправлением ввода, но только если мы ищем в конкретном файле.
Как видите, наличие пробела в имени каталога C:\test test\ не помешало осуществить поиск. Но это что касается поиска в файле file_1.txt. А вот попытка поискать сразу во всех файлах привела к ошибке.
В таком случае можно воспользоваться циклическое обработкой, к примеру, командой for :
Помните, что в этом случае в командной строке нужно использовать конструкции вида %a, а в файлах .bat и .cmd вида %%a.
До этого в примерах мы всегда указывали в каких файлах искать. Если этого не сделать, то команда find выполняет поиск в тексте консоли или в тексте, который был передан по конвейеру другой командой.
Для следующего примера вернём кодовую страницу CP866. После этого отсортируем вывод команды ipconfig /all — оставим только те строки, где содержится слово «Состояние»:
Здесь мы лишь пробежались по вершинам, но возможности команды find гораздо больше. Особенно, если использовать её в комплексе с другими командами.
Найти текст в файлах (Разные способы, разные ОС)
Иногда возникает необходимость поиска определенного слова/фразы в нескольких файлах. Это могут быть офисные документы (Word, Excel) или же просто куча текстовых файлов в которых нужно отыскать что-то.
В моем случае необходимо было найти на сайте, написанном на PHP определенное слово, точнее название картинки.
Для пользователей Windows
Для этого есть несколько способов.
1) Воспользоваться Notepad ++
Вкладка — поиск — найти в файлах — указываем путь поиска и ждем.
2) Воспользоваться поиском операционной системы.
Да-да, там тоже можно найти слово во множестве файлов.
У меня до сих пор Windows XP и честно говоря не знаю есть ли такая возможность в более новых версиях ОС.
— Пуск — найти — файлы и папки
— Документы (текстовые файлы, электронные таблицы) — использовать дополнительные параметры — слово или фраза в документе
— Дальше указываем путь для поиска — это может быть весь компьютер, какой-либо диск или папка.
3) Еще можно производить поиск при помощи Total Commander
Ну а если Вы обладатель Linux систем, то поиск здесь возможен из командной строки при помощи команд «find», «grep»
#find /etc/samba/ -type f -exec grep -i «1C» <> \;
Эта команда покажет следующее
[backup-1c]
path = /mnt/raid1/backup-1c
#[backup-1c]
backup:501:4C1FFAF2F0CAA715695109AB020E401C:8871D2FDC84S85A2F955273350F157ABD:[U ]:LCT-47563F59:
или так:
#grep -rli ‘1c’ /var/named/
А эта вот так
/etc/samba/smb.conf
/etc/samba/smbpasswd
Вообще «grep» — это просто незаменимая команда для пользователей Linux, она используется для разных манипуляций с текстом и очень популярна в скриптах Linux
В Linux так же можно производить поиск при помощи Midnight Commander, графического интерфейса и другого.
Если Вы счастливый обладатель Интернет магазина или только собираетесь его создавать, то сразу же обратите внимание на решения от Naumen Contact Center наумен.ру .
Количество просмотров: 8364
Комментарии к статье:
Автор комментария: Vik
Дата: 2021-10-27