поиск текста в файле

Обсуждение Total Commander. Установка, использование, настройка, решение проблем, скрытые функции. Обсуждение новых версий.

Модераторы: d-view, Моторокер, Avada, CaptainFlint, Nik

Ответить
Алексей Фролов
Сообщения: 1
Зарегистрирован: Ср июн 21, 2006 18:51

поиск текста в файле

Сообщение Алексей Фролов »

Подскажите, есть ли в ТС возможность искать по нескольким словам (чтобы находились файлы содержащие одно или несколько из слов). Или может существует какой-нибудь плагин?
Аватара пользователя
funduk
Сообщения: 1515
Зарегистрирован: Вт авг 16, 2005 16:00
Откуда: Санкт-Петербург

Сообщение funduk »

Как вариант могу посоветовать написать так:

слово1(.*)слово2(.*)слово3
и поставить галочку у регулярных выражений.
Аватара пользователя
funduk
Сообщения: 1515
Зарегистрирован: Вт авг 16, 2005 16:00
Откуда: Санкт-Петербург

Сообщение funduk »

Ну или такой вариант (учитывает, что это именно слова, а не части слов):

(\s)*слово1(\s)*(.*)(\s)*слово2(\s)*

В справке есть более менее полное описание регулярных выражений. Замечательная вещь.
Аватара пользователя
CaptainFlint
Сообщения: 6239
Зарегистрирован: Вт дек 14, 2004 22:34
Контактная информация:

Сообщение CaptainFlint »

funduk
Позанудствую малость. :D
Как твой второй вариант запретит найти, скажем, одно такое слово: "слово1слово2"? ;) Я уж не говорю о том, что порядок слов может быть разным...

Алексей Фролов
Думаю, проще всего делать так: сначала выполнить поиск по одному слову, забросить результаты на панель, выделить все файлы, снова открыть диалог поиска, выполнить поиск файлов, содержащих второе нужное слово (проверить, что опция "Только в выделенных файлах" активирована), ну и так далее, если слов больше, чем 2.
Почему же, ё-моё, ты нигде не пишешь "ё"?
Аватара пользователя
funduk
Сообщения: 1515
Зарегистрирован: Вт авг 16, 2005 16:00
Откуда: Санкт-Петербург

Сообщение funduk »

CaptainFlint писал(а):Как твой второй вариант запретит найти, скажем, одно такое слово: "слово1слово2"?
Там, вроде, \s должно было бы сработать, если бы я вместо * + бы написал :)
Я уж не говорю о том, что порядок слов может быть разным...
Ну, это да :lol:
Думаю, проще всего делать так: сначала выполнить поиск по одному слову, забросить результаты на панель, выделить все файлы, снова открыть диалог поиска, выполнить поиск файлов, содержащих второе нужное слово (проверить, что опция "Только в выделенных файлах" активирована), ну и так далее, если слов больше, чем 2.
Способ универсальный, но мой мне нравится тем, что при известном порядке (или если слова чередуются) требует одного запроса.
Аватара пользователя
Volniy
Сообщения: 585
Зарегистрирован: Ср дек 15, 2004 00:17
Откуда: Местный

Re: поиск текста в файле

Сообщение Volniy »

Я тоже побрюзжу немножко :roll: . Искать текст с помощью регулярных выражений можно только внутри одной строки текста
...the program only supports searching within one line (с) Ghisler, TC Help file
Так что такое выражение, как

Код: Выделить всё

слово1(.*)слово2(.*)слово3
не будет работать если слова находятся в разных строках, хотя и последовательно.
Аватара пользователя
funduk
Сообщения: 1515
Зарегистрирован: Вт авг 16, 2005 16:00
Откуда: Санкт-Петербург

Сообщение funduk »

Чёрт, чой-то я этого в русской справке не углядел...
А с (\n)* работает?
Аватара пользователя
Volniy
Сообщения: 585
Зарегистрирован: Ср дек 15, 2004 00:17
Откуда: Местный

Сообщение Volniy »

funduk писал(а):Чёрт, чой-то я этого в русской справке не углядел...
А с (\n)* работает?
В русской справке тоже есть:

Код: Выделить всё

Прочие модификаторы неприменимы для Total Commander, поскольку программа поддерживает только поиск в пределах одной строки.
А что должно работать-то с (\n)* ? Я чет не понял :(
Вообще \n работает только если оно в конце или в начале(!) регулярного выражения. Только ведь для этих целей и так есть метасимволы начала (^) и конца ($) строки. Нафик не надо нам это \n ...
Аватара пользователя
funduk
Сообщения: 1515
Зарегистрирован: Вт авг 16, 2005 16:00
Откуда: Санкт-Петербург

Сообщение funduk »

Нда, с разрывами строк не получается...
Ответить