Предположим, что у меня есть каталог с именем _file и включает в себя две подкаталога, такие как _1 и _2, и на каждом из них у меня есть текстовые файлы. Я хочу найти слово, подобное foo, в одном из этих текстовых файлов. Как я могу это сделать? Я хочу знать, какие текстовые файлы во всем каталоге содержат это слово?
Если вы не хотите устанавливать дополнительное программное обеспечение, вы можете просто использовать grep в терминале. Для рекурсивного поиска по каталогам вы можете использовать опцию -r (подробнее см. [F5]). Синтаксис, который вы ищете, вероятно:
grep -r "[STRING TO SEARCH FOR]" "[DIRECTORY TO SEARCH]"
Так, например, если я хочу искать строку «asdf» во всех файлах во всех подкаталогах «/ tmp / testdir /», команда выглядит следующим образом:
grep -r "asdf" "/tmp/testdir/"
Кавычки не являются строго необходимыми, но если ваш путь к строке или каталогу содержит пробелы, вам в противном случае придется маскировать их с помощью символа \ character ...
Просто установите gnome-search-tool, используя sudo apt-get install gnome-search-tool Поиск в тире для поиска файлов и его запуска.
См. изображение ниже:
Оставьте поле «name contains» пустым. Выберите свою папку. Разверните раздел «Выбрать дополнительные параметры» и выберите «содержит текст», а затем нажмите «Добавить». Введите здесь текст, который вы хотите найти, и нажмите «Найти» в правом нижнем углу.
Наслаждайтесь.
Вы можете использовать рекурсивный grep с флагом -l, чтобы печатать только имя файла, а не совпадающую строку:
grep -Rl foo .
Или вы можете использовать find: [!d1 ]
find . -type f -exec grep -l foo {} +
Или. вы можете использовать extglob и нормальный grep
shopt -s extglob
grep -l foo **/*