Как искать текст в файлах и папках в Linux
Следующее руководство покажет вам, как искать определенный текст во многих файлах и папках в дистрибутиве GNU/Linux с помощью однострочной команды.
Если вы разработчик, веб-программист или кто-то, кто работает с большим количеством файлов, и вам нужно найти один фрагмент текста, вы должны знать и запомнить одну команду, которую вы можете использовать в любой системе на базе Linux.
Например, предположим, что у вас есть каталог, содержащий 30 папок и 20 000 файлов. Не имеет значения расширение файлов, содержащихся в этих папках, поскольку они могут быть любыми, которые вам приходят в голову, например. .txt, .php, .css, .js и т. д.
Вам нужно быстро найти одно или несколько слов в этих файлах. Что вы делаете? Конечно, просмотр каждого отдельного файла был бы невыполнимой миссией, поэтому на помощь приходит команда Linux grep.
Команда grep (глобальная печать регулярных выражений) очень мощная и, вероятно, самая универсальная из команд Linux. Его основная цель — поиск шаблонов в каждом файле, но он поддерживает сложные правила.
Таким образом, для поиска текста в тысячах файлов, содержащихся в иерархии папок, вам нужна только одна строка команды, которую вы можете запустить на эмуляторе терминала.
Вот и все! С помощью этой команды вы сможете искать текст в сотнях или тысячах файлов, просто замените строку пути на путь, по которому вы хотите найти текст, и текстовую строку на текст, который вы хотите найти.
Для быстрого примера предположим, что я хочу найти слово «mail» в каталоге с именем «etc», содержащем 231 элемент (включая файлы и папки) в моем домашнем каталоге. Команда, которую я бы использовал:
В примере мы видим содержимое всех файлов в папке с ключевым словом «mail».
Самое приятное в grep то, что он знает о поиске с учетом регистра, поэтому вы можете найти слова, содержащие заглавные буквы, цифры или любые другие символы. Конечно, вы также можете искать только по номерам.
Если вы разработчик, веб-программист или кто-то, кто работает с большим количеством файлов, и вам нужно найти один фрагмент текста, вы должны знать и запомнить одну команду, которую вы можете использовать в любой системе на базе Linux.
Например, предположим, что у вас есть каталог, содержащий 30 папок и 20 000 файлов. Не имеет значения расширение файлов, содержащихся в этих папках, поскольку они могут быть любыми, которые вам приходят в голову, например. .txt, .php, .css, .js и т. д.
Вам нужно быстро найти одно или несколько слов в этих файлах. Что вы делаете? Конечно, просмотр каждого отдельного файла был бы невыполнимой миссией, поэтому на помощь приходит команда Linux grep.
Команда grep (глобальная печать регулярных выражений) очень мощная и, вероятно, самая универсальная из команд Linux. Его основная цель — поиск шаблонов в каждом файле, но он поддерживает сложные правила.
Таким образом, для поиска текста в тысячах файлов, содержащихся в иерархии папок, вам нужна только одна строка команды, которую вы можете запустить на эмуляторе терминала.
grep -rnw 'путь' -e 'текст'
Вот и все! С помощью этой команды вы сможете искать текст в сотнях или тысячах файлов, просто замените строку пути на путь, по которому вы хотите найти текст, и текстовую строку на текст, который вы хотите найти.
Для быстрого примера предположим, что я хочу найти слово «mail» в каталоге с именем «etc», содержащем 231 элемент (включая файлы и папки) в моем домашнем каталоге. Команда, которую я бы использовал:
grep -rnw '/etc' -e 'mail'
В примере мы видим содержимое всех файлов в папке с ключевым словом «mail».
Самое приятное в grep то, что он знает о поиске с учетом регистра, поэтому вы можете найти слова, содержащие заглавные буквы, цифры или любые другие символы. Конечно, вы также можете искать только по номерам.
Похожие публикации
Нет комментариев