- ИТ База знаний
- Полезно
- Навигация
- Серверные решения
- Телефония
- Корпоративные сети
- Рекурсивно найти слово в файлах и папках Linux
- Найти фразу в файлах рекурсивно через консоль
- Поиск слова через Midnight Commander
- Поиск текста в файлах Linux
- Способ 1: Текстовые редакторы с графическим интерфейсом
- Способ 2: Редакторы конфигурационных файлов с GUI
- Способ 3: Консольные редакторы
- Способ 4: Утилита grep
- 🧟♀️ Как найти определенное слово в файле в Linux
- Использование grep для поиска определенного слова в файле
- Использование find для поиска определенного слова в файле
- Использование ack для поиска определенного слова в файле
- Заключение
ИТ База знаний
Курс по Asterisk
Полезно
— Узнать IP — адрес компьютера в интернете
— Онлайн генератор устойчивых паролей
— Онлайн калькулятор подсетей
— Калькулятор инсталляции IP — АТС Asterisk
— Руководство администратора FreePBX на русском языке
— Руководство администратора Cisco UCM/CME на русском языке
— Руководство администратора по Linux/Unix
Навигация
Серверные решения
Телефония
FreePBX и Asterisk
Настройка программных телефонов
Корпоративные сети
Протоколы и стандарты
Рекурсивно найти слово в файлах и папках Linux
Великая сила grep
2 минуты чтения
Дистрибутив Linux, несмотря на версию и вид, имеет множество графических оболочек, которые позволяют искать файлы. Большинство из их них позволяют искать сами файлы, но, к сожалению, они редко позволяют искать по содержимому. А особенно рекурсивно. В статье покажем два способа того, как можно рекурсивно найти файлы, которые содержат ту или иную фразу. Поиск будет осуществлен по папкам и директориям внутри этих папок.
Онлайн курс по Linux
Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps
Найти фразу в файлах рекурсивно через консоль
Все просто. Открываем серверную консоль, подключившись по SSH. А далее, вводим команду:
Например, команда может выглядеть вот так:
Команда найдет и выведет все файлы, которые содержат фразу merionet в директории /home/user/merion и во всех директориях, внутри этой папки. Мы используем следующие ключи:
- -i — игнорировать регистра текста (большие или маленькие буквы);
- -R — рекурсивно искать файлы в сабдиректориях;
- -I — показывать названия файлов, вместо их содержимого;
Так же, вам могут быть полезны следующие ключи:
- -n — показать номер строки, в которой находится фраза;
- -w — показать место, где слово попадается;
Поиск слова через Midnight Commander
Так же, в консоли сервера, дайте команду:
Эта команда запустит Midnight Commander. Кстати, если он у вас не установлен, его можно просто установить через yum:
Открыв mc, во вкладке Command выберите Find File и заполните поисковую форму как показано ниже:
- Start at: — директория, где нужно осуществлять поиск;
- File name: — маска поиска. Например, искать только в файлах расширения txt будет — *.txt;
- Content — сама фраза;
Нажимаем OK и получаем результат:
Мини — курс по виртуализации
Знакомство с VMware vSphere 7 и технологией виртуализации в авторском мини — курсе от Михаила Якобсена
Источник
Поиск текста в файлах Linux
Способ 1: Текстовые редакторы с графическим интерфейсом
В Linux, как и в других операционных системах, имеются различные текстовые редакторы, реализованные с графическим интерфейсом. В большинстве случаев они задействованы пользователем при составлении документов. Поэтому в качестве первого способа мы и предлагаем затронуть тему как раз таких программ, что позволит начинающим юзерам освоиться в них и понять, каким же образом происходит поиск текста в файлах.
- В первую очередь откройте файловый менеджер, чтобы отыскать через него необходимый объект.
Щелкните по нему правой кнопкой мыши для вызова контекстного меню и откройте через установленный по умолчанию редактор или выберите пункт «Открыть в другом приложении».
После открытия файла через удобный редактор остается только отыскать раздел «Правка».
В нем присутствует опция «Найти», именно она и интересует нас сейчас. Чаще всего ее же можно вызвать и через стандартную комбинацию клавиш Ctrl + F.
Обычно при нахождении совпадений фрагменты выделяются в тексте, а также по результатам можно удобно перемещаться с помощью виртуальных кнопок в виде стрелок.
Только что в качестве примера мы взяли стандартный текстовый редактор LibreOffice. Если в используемом дистрибутиве установлена другая программа или вы предпочитаете взаимодействовать с похожими аналогами, принцип выполнения поставленной задачи практически ничем не отличается от увиденного только что. При возникновении проблем с поиском раздела «Правка» попробуйте нажать комбинацию Ctrl + F, чтобы открыть строку поиска.
Способ 2: Редакторы конфигурационных файлов с GUI
Отдельно хотелось бы упомянуть небольшие утилиты с графическим интерфейсом, чья основная функциональность сосредоточена на редактировании конфигурационных файлов. Это не совсем текстовые редакторы, однако они отображают содержимое объектов именно в таком виде. Давайте возьмем за пример стандартное средство многих дистрибутивов под названием gedit.
- Для начала потребуется запустить консоль. Сделайте это через меню приложений или нажатием на горячую клавишу Ctrl + Alt + T.
Введите команду gedit /etc/ssh/sshd_config , где /etc/ssh/sshd_config замените на путь к необходимому объекту.
Активируйте команду нажатием на клавишу Enter и дождитесь отображения нового окна. Здесь разверните меню с параметрами.
Отыщите пункт «Найти» и кликните по нему.
Осталось только ввести содержимое в появившуюся строку и ознакомиться с полученными результатами, которые будут подсвечены оранжевым цветом.
В ситуации с остальными похожими программами для изменения конфигурационных файлов принцип поиска содержимого остается аналогичным, а также в большинстве случаев активировать строку можно нажатием на уже упомянутую горячую клавишу Ctrl + F.
Способ 3: Консольные редакторы
Существуют специальные консольные утилиты, выполняющие роль редакторов файлов. У них отсутствует собственный графический интерфейс, а все содержимое выводится прямо в «Терминале». Через них поиск текста тоже прекрасно осуществим, а на примере известного nano предлагаем остановиться в рамках этой статьи.
- Используйте команду nano + расположение файла , чтобы открыть его для произведения поиска или редактирования. Если вы присваиваете этой строке аргумент sudo, дополнительно придется ввести пароль root-доступа для успешной активации команды.
Обычно в таких редакторах присутствует описание кнопок или же все сведения находятся в официальных документациях. Если рассматривать конкретно nano, строка поиска вызывается путем нажатия сочетания Ctrl + W.
В самой строке остается только напечатать слово или словосочетание, а затем кликнуть на Enter для отображения результатов.
Курсор сразу же переместится на подходящую строку и вы сможете ознакомиться с ней.
Существует еще множество похожих программ на те, которые были перечислены выше. Одни имеют графический интерфейс, а другие реализованы через консоль, однако это не мешает использовать их для поиска текста в файлах. Если вы еще не определились, какое решение хотите задействовать, советуем изучить список лучшего ПО, перейдя по указанной далее ссылке.
Способ 4: Утилита grep
В качестве последнего способа сегодняшнего материала хотим рассмотреть известную многим стандартную утилиту grep. Она стала популярной благодаря своей мощности, что позволяет удобно сортировать содержимое файлов по разным параметрам. В возможности этого решения входит и поиск текста, что выглядит следующим образом.
- В «Терминале» введите grep + содержание_для_поиска + путь_к_файлу , а затем нажмите Enter. Учитывайте, что при применении grep без опций следует указывать регистр вводимых символов.
В результате появятся строки с совпадениями, где подходящее содержимое будет выделено розовым цветом.
Задействуйте команду grep c опцией -i, чтобы строка выглядела так: grep -i «port» /etc/ssh/sshd_config . В таком случае регистр учитываться не будет.
Вы увидите, что на экране отобразились абсолютно все подходящие результаты.
Это были все способы, позволяющие отыскать текст в файлах Linux. Как видите, каждый из них будет оптимальным в разных случаях, поэтому важно понимать, к какому конкретно средству обратиться в сложившейся ситуации. Наши инструкции помогут не запутаться и справиться с поставленной задачей без каких-либо трудностей.
Помимо этой статьи, на сайте еще 12315 инструкций.
Добавьте сайт Lumpics.ru в закладки (CTRL+D) и мы точно еще пригодимся вам.
Отблагодарите автора, поделитесь статьей в социальных сетях.
Источник
🧟♀️ Как найти определенное слово в файле в Linux
По умолчанию большинство инструментов поиска смотрят имена файлов, а не их содержимое.
Тем не менее, самая известная программа поиска GNU, grep, будет искать файлы с правильными флагами.
Здесь мы покажем вам, как вы можете найти конкретные слова в файле в Linux.
Использование grep для поиска определенного слова в файле
По умолчанию grep просматривает содержимое файлов, а также их имена.
Он включен в большинство систем Linux и в целом одинаков для всех дистрибутивов.
Тем не менее, небольшие или менее мощные Linux-боксы могут предпочесть выполнить другую команду, например, ack.
В зависимости от того, как файл закодирован, grep не всегда может заглянуть внутрь.
Но для большинства текстовых форматов grep может сканировать текст файла по указанному шаблону.
Флаг -R устанавливает grep в рекурсивный режим, перемещаясь по всем каталогам, содержащимся в указанном каталоге.
Флаг -w ищет совпадения всего слова.
Это означает, что «red» будет соответствовать только «red», окруженному пробельными символами, а не «redundant» или «tired».
Флаг -e предшествует шаблону для поиска.
Он поддерживает регулярные выражения по умолчанию.
Чтобы ускорить grep, вы можете использовать флаги –exclude и –include, чтобы ограничить поиск определенными типами файлов.
Например, –exclude = *. Csv не будет искать в файлах с расширением .csv. –include = *. txt, с другой стороны, будет выполнять поиск только в файлах с расширением .txt.
Флаг можно добавить сразу после команды grep, как показано ниже:
Вы также можете исключить указанные каталоги, следуя приведенному ниже формату:
Эта команда не будет выполнять поиск в каких-либо каталогах в текущем рабочем каталоге с именами dir1, dir2 или с шаблоном * _old, исключая их из процесса поиска.
Он выполнит указанный рекурсивный поиск по полному слову во всех других файлах в текущем рабочем каталоге.
Использование find для поиска определенного слова в файле
Хотя синтаксис команды find является более сложным, чем grep, некоторые предпочитают его.
Эта команда будет использовать флаг find -exec для передачи найденных файлов в grep для поиска.
Благодаря продуманному синтаксису вы можете использовать более быстрый поиск в файловой системе c find, чтобы найти конкретные типы файлов, в которых вы хотите искать, и затем направить их в grep для поиска внутри файлов.
Обратите внимание, что команда find ищет только имена файлов, а не их содержимое.
Вот почему grep требуется для поиска текста и содержимого файла.
Обычные флаги grep должны быть полностью работоспособны в пределах флага -exec.
Использование ack для поиска определенного слова в файле
Команда ack, вероятно, является самым быстрым инструментом поиска, но она не так популярна, как описанные выше опции.
Команда, показанные ниже будет искать в текущем каталоге.
Если вы хотите выполнить поиск в определенном файле или каталоге, вы можете добавить этот файл или полный путь к вашему поиску.
Заключение
Для большинства людей в большинстве ситуаций, grep – лучший широко доступный инструмент поиска.
Вы также можете посмотреть другие инструменты поиска, такие как RipGrep, для более быстрого поиска.
Источник