Поиск файлов по нескольким текстовым параметрам
Поиск файлов по нескольким текстовым параметрам
Ситуация:
1) более 1000 файлов
2) примерно в 200 из этих 1000 есть уникальные значения (список этих уникальных значений есть)
3) если штатно то Alt+F7 и так 200 раз.
Как и где можно указать все эти уникальные значения разом и запустить поиск по результату получить список файлов в которых встречаются эти значения
1) более 1000 файлов
2) примерно в 200 из этих 1000 есть уникальные значения (список этих уникальных значений есть)
3) если штатно то Alt+F7 и так 200 раз.
Как и где можно указать все эти уникальные значения разом и запустить поиск по результату получить список файлов в которых встречаются эти значения
-
- Posts: 6834
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 530 times
Поиск файлов по нескольким текстовым параметрам
Вам нужно воспользоваться плагином, который умеет искать из панелей по регулярным выражениям. Например, RESearch или LuaFAR Search.
Сначала нужно будет из списка уникальных значений приготовить регулярное выражение. Для этого нужно:
1. Заэкранировать символом
2. Объединить экранированные уникальные значения в одну строку с разделителем
Затем вставляете то, что получилось, в строку поиска плагина и ищете.
Сначала нужно будет из списка уникальных значений приготовить регулярное выражение. Для этого нужно:
1. Заэкранировать символом
\
все "спецсимволы" регулярных выражений, если они есть в уникальных значениях.2. Объединить экранированные уникальные значения в одну строку с разделителем
|
между ними.Затем вставляете то, что получилось, в строку поиска плагина и ищете.
Поиск файлов по нескольким текстовым параметрам
Shmuel, подскажите пожалуйста спецсимволы регулярных выражений на примере:
007-01103-16
007-01104-16
007-01106-16
007-01115-16
007-01118-16
007-01119-16
007-01120-16
007-01103-16
007-01104-16
007-01106-16
007-01115-16
007-01118-16
007-01119-16
007-01120-16
-
- Posts: 6834
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 530 times
Поиск файлов по нескольким текстовым параметрам
Здесь можно ничего не экранировать.
Но глядя на эти уникальные значения, скорее всего эту задачу можно решить проще.
Например, эти 7 уникальных значений - регулярным выражением
Но глядя на эти уникальные значения, скорее всего эту задачу можно решить проще.
Например, эти 7 уникальных значений - регулярным выражением
007-011\d\d-16
.Поиск файлов по нескольким текстовым параметрам
1. Обратиться к ближайшему перловику. И не забыть, потом, его отблагодарить.
2. Обратиться к ближайшему человеку, прочитавшему man grep и понявшему прочитанное.
А к фару это вообще не имеет отношения.
2. Обратиться к ближайшему человеку, прочитавшему man grep и понявшему прочитанное.
А к фару это вообще не имеет отношения.
Поиск файлов по нескольким текстовым параметрам
Строго говоря, ответ неверный. Такое регулярное выражение покрывает значительно более широкий круг значений. Правильно использовать перечисление (03|04 ... |20)Shmuel wrote: Например, эти 7 уникальных значений - регулярным выражением007-011\d\d-16
.
-
- Posts: 3
- Joined: Sat 01 Dec, 2018 19:43
Плагин множественного поиска
Есть большая база текстовых документов (doc, docx, rtf, архивы zip). При поступлении нового документа нужно проверить, встречаются ли указанные в нем строки (каждая строка от 3 до 18 символов находится на отдельной строке нового документа) в базе документов. Количество строк, которые нужно проверить, может достигать нескольких десятков. Строки, которые нужно найти, в настоящее время в файле RTF, но можно перевести в обычный текстовой файл. Подставлять по одной строке и искать - очень утомительно.Можно ли сделать такой плагин, который бы позволял выбрать файл со строками, которые нужно проверять, брал бы по одной строке из этого файла, искал в заданной директории с заданными параметрами поиска (расширение файла, возможность поиска по архивам и др.) и выводил бы в другой файл найденную строку и полное имя файла? Вообще можно ли это сделать с помощью плагина к FAR? Если можно, то подскажите, пожалуйста, ресурсы с информацией, которая помогла бы мне самому разобраться с созданием плагинов для FAR и разработать такой плагин (программирую на C++ и C#).
-
- Posts: 6834
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 530 times
Плагин множественного поиска
Если пользоваться уже существующими средствами, то можно так:
1. Переводим RTF файл со строками поиска в текстовый формат.
2. Пишем простенький скрипт, который делает из всех строк поиска одно регулярное выражение.
3. Берём один из плагинов RESearch или LF Search и делаем GREP с этим регулярным выражением.
Да, файлы, в которых ищем, должны быть в текстовом формате, а не doc, docx, rtf, pdf и т.д.
1. Переводим RTF файл со строками поиска в текстовый формат.
2. Пишем простенький скрипт, который делает из всех строк поиска одно регулярное выражение.
3. Берём один из плагинов RESearch или LF Search и делаем GREP с этим регулярным выражением.
Да, файлы, в которых ищем, должны быть в текстовом формате, а не doc, docx, rtf, pdf и т.д.
- buniak_a_h
- Posts: 4262
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 222 times
- Been thanked: 644 times
- Contact:
Плагин множественного поиска
Вы не написали, что хотели бы получить в результате. Предположу, что временную панель с файлами, в которых найдена одна из строк, перечисленных в файле поиска.
При работе под Windows я бы просто написал bat-файл с командами
При работе под Windows я бы просто написал bat-файл с командами
for /F
- для перебора искомых строк и FindStr /M
для поиска с перенаправлением результатов в файл. А затем команда tmp: <имя_файла>
откроет этот список на временной панели.- buniak_a_h
- Posts: 4262
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 222 times
- Been thanked: 644 times
- Contact:
Плагин множественного поиска
Извините, даже это - слишком сложно... У FindStr есть параметр /G:файл - Получение строк из заданного файла (/ для консоли).. Т.е. цикл for /F - лишний.
Т.е. вся задача сводится к команде:
- для получения списка найденных строк:
- для получения списка файлов, содержащих строки:
Ограничение - при получении искомых строк из файла они не могут быть регулярными выражениями. Но, насколько я понял, это и не требуется
Т.е. вся задача сводится к команде:
- для получения списка найденных строк:
Code: Select all
edit:<findstr /S /I /N /G:<имя_файла> <Маска>
Code: Select all
edit:<findstr /S /I /M /G:<имя_файла> <Маска>
-
- Posts: 3
- Joined: Sat 01 Dec, 2018 19:43
Как в Far задать несколько строк для поиска?
Можно ли в Far задать несколько строк для поиска, чтобы он за один проход находил все файлы, в которых эти строки встречаются?
-
- Posts: 1
- Joined: Wed 20 Nov, 2019 16:22
- Has thanked: 2 times
Поиск одного из перечисленных значений
Есть исходный список значений a, b, c, d
Нужно выполнить поиск в в файлах маски *.txt наличие одного из перечисленных значений
Подскажите какой разделитель должен быть между заданными значениями или как задать требуемый поиск в far?
Нужно выполнить поиск в в файлах маски *.txt наличие одного из перечисленных значений
Подскажите какой разделитель должен быть между заданными значениями или как задать требуемый поиск в far?
- buniak_a_h
- Posts: 4262
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 222 times
- Been thanked: 644 times
- Contact:
Поиск одного из перечисленных значений
dominicana, в стандартном поиске не предусмотрен поиск по регулярным выражениям; соответственно, искать можно только строку. НО! Не всё так грустно. Есть несколько плагинов, осуществляющих поиск регэкспов (LueFAR Search, RESearch или макросом). В поисковой строке укажите
a|b|c|d
Поиск одного из перечисленных значений
Code: Select all
╔════════════════════ Regular Expression Search ═════════════════════╗
║ File mask(s): [ ] As regular expression ║
║ *.txt ↓║
║ Containing text: ║
║ a|b|c|d ↓[ \ ]║
╟────────────────────────────────────────────────────────────────────╢
║ ( ) Plain text ║
║ (•) Regular expression [ ] [ Advanced ]║