Поиск нескольких строк в нескольких файлах с помощью Sublime 3
Я знаю, как искать одну строку в нескольких файлах одновременно с Sublime 3 (объясняется здесь).
Мне нужно выполнить поиск нескольких строк в нескольких файлах.
Я попытался перейти к Find in files
и установил:
Field: string1 \& string2
Where: /path_to_folder_containing_the_files_I_want_to_ search/
(где string1
и string2
- строки, которые я хочу найти), но это не работает.
Можно ли это сделать вообще?
Ответы
Ответ 1
Просто наткнулся на этот старый вопрос и подумал, что я добавлю свое решение, которое может быть полезно кому-то в будущем.
Sublime поддерживает поиск во всех открытых папках и может использовать регулярное выражение. Таким образом, используя оба варианта, вы можете открыть или добавить все папки, которые хотите найти в проекте, и использовать регулярное выражение для поиска нескольких ключевых слов. В вашем случае это будет следующее (убедитесь, что проверили значок regex box .*
):
Find: (string1|string2)
Where: <open folders>
Ответ 2
Я попробовал это на Sublime Text2, поэтому должен работать и с Sublime Text3.
Поле: string1 string2 string3 string4
Где:/path_to_folder_containing_the_files_I_want_to_ search/
Примечание: снимите флажок ". *", что означает "Регулярное выражение" и отметьте "", что означает поиск целого слова.
Это приведет к поиску шаблона "string1 string2 string3 string4" во всех файлах указанной папки.
Ответ 3
Нет, вы можете искать только одно за раз в Sublime, как и большинство других редакторов, о которых я знаю. Единственный возможный способ этого - использовать поиск в регулярном выражении (нажмите кнопку в левом углу поля при вводе поискового запроса) и придумайте хорошее регулярное выражение, соответствующее всем вещам, которые вы ищете. Или вы можете просто искать каждый матч по одному.
В качестве альтернативы рассмотрим возможность очистки стандартных служебных программ обработки текста командной строки, таких как grep
, sed
, awk
и т.д. Объединение их возможностей с возможностями командной строки оболочки позволяет запускать команды, такие как:
grep -e "foo" *.txt | grep -e "bar"
который будет искать через все .txt
файлы в текущем каталоге для шаблона foo
, тогда все результирующие строки снова будут искать шаблон bar
, так что конечный вывод будет иметь как foo
, так и bar
в них, в любом порядке.