Как найти текст в файлах в Linux

How Find Text Files Linux

Для системного администратора работа с текстовыми файлами - обычное явление. Может быть, нужно найти конкретный раздел из груд файлов журналов для устранения каких-либо неполадок? Или вам нужно быстро найти документ, содержащий важную информацию?

В случае Linux существует множество методов поиска текстов в файлах. Это возможно с использованием как встроенных инструментов, так и сторонних приложений. Узнайте, как искать тексты в файлах в Linux.



Поиск текста в файлах

В зависимости от количества файлов, в которых необходимо выполнить поиск, существует два способа выполнения текстового поиска: автоматический или ручной. Если вам нужно работать с парочкой текстовых файлов, больше подходит ручной поиск. Однако при наличии сотен текстовых файлов автоматический поиск наиболее эффективен.



Для автоматического поиска мы будем использовать grep. Grep предустановлен в любом дистрибутиве Linux. Что касается ручного поиска, то подойдет любой современный текстовый редактор.



Найдите текст в файлах с помощью grep

В Linux grep - это инструмент по умолчанию для поиска текстов. Его имя происходит от команды ed g / re / p, которая означает глобальный поиск регулярного выражения и печать совпадающих строк. Он доступен в любом современном дистрибутиве Linux.

Grep - это инструмент командной строки. Его командная структура выглядит следующим образом.

$рукоятка <вариант> <регулярное_выражение> <Путь файла>

Как следует из названия grep, шаблон для поиска описывается с помощью регулярного выражения. Регулярное выражение - это особый тип строки, описывающий шаблон для сопоставления, поиска и управления. Чтобы узнать больше о grep и регулярных выражениях, ознакомьтесь с использование grep и egrep с регулярным выражением .



В демонстрационных целях возьмите образец текстового файла. В этом примере загрузите Текстовый файл GNU General Public License v3.0 .

Базовый поиск

Основной способ использования grep - поиск базовой строки.

Взгляните на следующую команду grep. Он будет искать слово GNU в текстовом файле.

$рукоятка 'GNU'LPG-3.0.текст

Чтобы показать номер строки, используйте флаг -n.

$рукоятка -nGNU gpl-3.0.текст

Чтобы выполнить поиск без учета регистра с помощью grep, используйте флаг -i.

$рукоятка -niGNU GPL-3.0.текст

Возможно, вы захотите видеть не совпадения поиска, а только имя файла, в котором совпадение произошло в некоторых ситуациях. Чтобы напечатать только имя файла, используйте флаг -l. Здесь звездочка означает использование всех текстовых файлов в текущем каталоге.

$рукоятка -GNU*

Мы также можем передать вывод других команд в grep.

$КотLPG-3.0.текст| рукоятка -nGNU

Регулярное выражение

Regex предлагает умный способ точной настройки поиска. Здесь свои правила. Однако разные приложения и языки программирования по-разному реализуют регулярные выражения. Вот несколько примеров, которые можно использовать с grep.

Чтобы определить, что строка должна быть найдена в начале строки, используйте символ каретки (^).

$рукоятка -n^ GNU gpl-3.0.текст

Чтобы определить, что строка должна находиться в конце строки, используйте знак доллара ($).

$рукоятка -nв $ gpl-3.0.текст

Чтобы указать, что в определенном месте шаблона может быть любой символ, используйте символ точки (.). Например, выражение G.U допустимо, если между G и U стоит какой-либо символ.

$рукоятка -nG.U gpl-3.0.текст

Чтобы указать, что в определенном месте шаблона может быть подмножество символов, используйте квадратные скобки ([]). Например, выражение t [wo] o говорит о том, что соответствие действительно только для двоих и то же.

$рукоятка -nт[Где]o gpl-3.0.текст

Расширенное регулярное выражение

Как следует из названия, расширенное регулярное выражение может выполнять более сложные задачи, чем базовые регулярные выражения. Чтобы использовать расширенное регулярное выражение с grep, вы должны использовать флаг -E.

$рукоятка -Родился <extended_regex> <файл>

Для поиска двух разных строк используйте операторы ИЛИ (|).

$рукоятка -РодилсяGNU|Общее|Лицензия gpl-3.0.текст

Поиск текста в файлах

Теперь самое главное. Вместо того, чтобы вручную указывать grep файл для выполнения поиска, grep может сделать это автоматически. В следующей команде grep будет использовать все доступные текстовые файлы в текущем каталоге для поиска шаблона.

$рукоятка <регулярное выражение> *

Если вы хотите, чтобы grep выполнял поиск в другом каталоге, вам необходимо указать местоположение.

$рукоятка <регулярное выражение> <путь_каталога>

Если есть папки, grep не исследует их по умолчанию. Чтобы указать grep выполнять рекурсивный поиск, используйте флаг -R.

$рукоятка -nR <регулярное выражение> <путь_каталога>

Grip GUI

Если вы предпочитаете работать с графическим интерфейсом, но все же хотите пользоваться функциями grep, попробуйте searchmonkey. Это интерфейсное решение для grep. Пакет доступен практически во всех основных дистрибутивах Linux.

Найдите текст в файлах с помощью nano

GNU Nano - это простой и мощный текстовый редактор, который поставляется с любым дистрибутивом Linux. Он имеет встроенные функции для поиска текста в текстовом файле.

Обратите внимание, что в этом методе вам нужно открыть текстовый файл и выполнить поиск вручную. Это выполнимо, если нужно работать только с несколькими текстовыми файлами. Если их больше, то использование grep - самый оптимальный выбор.

Откройте текстовый файл в nano.

$нано <Путь файла>

Чтобы найти совпадение строки, нажмите Ctrl + W. После ввода строки для поиска нажмите Enter.

Найдите текст в файлах с помощью Vim

Vim - хорошо известный текстовый редактор. Это эквивалент командной строки современного текстового редактора. Vim имеет множество расширенных функций, таких как плагины, макросы, автозаполнение, фильтры и т. Д.

Подобно nano, Vim работает с одним файлом за раз. Если у вас несколько текстовых файлов, то использование grep - самый оптимальный способ.

Чтобы выполнить поиск в текстовом файле, сначала откройте его в Vim.

$я пришел <Путь файла>

Введите следующую команду Vim и нажмите Enter.

$:/<искать термин>

Найдите текст в файлах с помощью текстового редактора GNOME

Текстовый редактор GNOME - это текстовый редактор, поставляемый с рабочим столом GNOME. Это упрощенный текстовый редактор со всеми основными функциями, которые вы ожидаете. Это хорошая альтернатива текстовым редакторам командной строки.

Подобно nano и vim, к этому методу применяются те же меры предосторожности. Если количество текстовых файлов велико, лучше придерживаться grep.

Откройте текстовый файл в текстовом редакторе. Нажмите Ctrl + F, чтобы открыть панель поиска.

Найти текст в файлах с помощью VS Code

Visual Studio Code - это мощный текстовый редактор с множеством функций. Он оптимизирован для использования программистами, как если бы это была полноценная IDE. Он доступен практически во всех основных дистрибутивах Linux.

Установите пакет оснастки Visual Studio Code.

$судощелчокустановитькод- классический

Откройте текстовый файл в VS Code. Нажмите Ctrl + F, чтобы начать поиск.

Последние мысли

Существует множество способов поиска текста в файлах. Это простая задача. Настоятельно рекомендуется освоить команду grep, потому что она предлагает наибольшую ценность с точки зрения эффективности и простоты использования.

Если вы предпочитаете графический интерфейс, на выбор есть множество текстовых редакторов. Любой современный текстовый редактор предоставит возможность поиска текста.

Удачных вычислений!