Как в Far задать несколько строк для поиска?

Столкнулись с проблемой в использовании Far? Здесь можно получить помощь.
Post Reply
tumanovalex
Posts: 3
Joined: Sat 01 Dec, 2018 19:43

Плагин множественного поиска

Post by tumanovalex » Sat 01 Dec, 2018 20:06

Есть большая база текстовых документов (doc, docx, rtf, архивы zip). При поступлении нового документа нужно проверить, встречаются ли указанные в нем строки (каждая строка от 3 до 18 символов находится на отдельной строке нового документа) в базе документов. Количество строк, которые нужно проверить, может достигать нескольких десятков. Строки, которые нужно найти, в настоящее время в файле RTF, но можно перевести в обычный текстовой файл. Подставлять по одной строке и искать - очень утомительно.Можно ли сделать такой плагин, который бы позволял выбрать файл со строками, которые нужно проверять, брал бы по одной строке из этого файла, искал в заданной директории с заданными параметрами поиска (расширение файла, возможность поиска по архивам и др.) и выводил бы в другой файл найденную строку и полное имя файла? Вообще можно ли это сделать с помощью плагина к FAR? Если можно, то подскажите, пожалуйста, ресурсы с информацией, которая помогла бы мне самому разобраться с созданием плагинов для FAR и разработать такой плагин (программирую на C++ и C#).

Shmuel
Posts: 5600
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 21 times
Been thanked: 186 times

Плагин множественного поиска

Post by Shmuel » Sat 01 Dec, 2018 20:15

Если пользоваться уже существующими средствами, то можно так:
1. Переводим RTF файл со строками поиска в текстовый формат.
2. Пишем простенький скрипт, который делает из всех строк поиска одно регулярное выражение.
3. Берём один из плагинов RESearch или LF Search и делаем GREP с этим регулярным выражением.

Да, файлы, в которых ищем, должны быть в текстовом формате, а не doc, docx, rtf, pdf и т.д.

buniak_a_h
Posts: 609
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 60 times
Been thanked: 15 times
Contact:

Плагин множественного поиска

Post by buniak_a_h » Sun 02 Dec, 2018 02:41

Вы не написали, что хотели бы получить в результате. Предположу, что временную панель с файлами, в которых найдена одна из строк, перечисленных в файле поиска.
При работе под Windows я бы просто написал bat-файл с командами for /F - для перебора искомых строк и FindStr /M для поиска с перенаправлением результатов в файл. А затем команда tmp: <имя_файла> откроет этот список на временной панели.

buniak_a_h
Posts: 609
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 60 times
Been thanked: 15 times
Contact:

Плагин множественного поиска

Post by buniak_a_h » Sun 02 Dec, 2018 23:13

Извините, даже это - слишком сложно... У FindStr есть параметр /G:файл - Получение строк из заданного файла (/ для консоли).. Т.е. цикл for /F - лишний.
Т.е. вся задача сводится к команде:
- для получения списка найденных строк:

Code: Select all

edit:<findstr /S /I /N /G:<имя_файла> <Маска>
- для получения списка файлов, содержащих строки:

Code: Select all

edit:<findstr /S /I /M /G:<имя_файла> <Маска>
Ограничение - при получении искомых строк из файла они не могут быть регулярными выражениями. Но, насколько я понял, это и не требуется

tumanovalex
Posts: 3
Joined: Sat 01 Dec, 2018 19:43

Как в Far задать несколько строк для поиска?

Post by tumanovalex » Thu 06 Dec, 2018 08:19

Можно ли в Far задать несколько строк для поиска, чтобы он за один проход находил все файлы, в которых эти строки встречаются?

Post Reply

Return to “Нужна помощь”