[ad_1]
Вы ищете именно этот файл, который содержит всю важную информацию для вашей следующей встречи. Вы вручную ищете все свои файлы? Это займет время. Вместо этого мы используем небольшую магию командной строки Linux. Греп — это команда сопоставления с образцом, которую мы можем использовать для поиска определенного текста внутри файлов и каталогов. Греп обычно используется с выводом одной команды, который передается как ввод команды grep. Например, мы можем искать внутри файла определенную строку текста, используя меньше команду и передать вывод в grep.
В этом руководстве мы будем использовать grep команда и обычно добавляются аргументы для поиска определенных строк данных в файлах. Мы начнем с создания небольшого каталога тестовых файлов, так как поиск по всей файловой системе может занять некоторое время и дать много результатов.
Все команды в этом руководстве будут работать на большинстве машин Linux. Мы использовали установку Ubuntu 20.04, но вы можете запустить это руководство на Raspberry Pi. Все инструкции выполняются через Терминал. Вы можете открыть окно терминала на большинстве машин Linux, нажав Ctrl, Alt а также т.
Настройка тестовой среды для grep
В качестве grep может использоваться по-разному, нам нужно настроить каталог и некоторый контент, который позволит нам изучить его использование. В этом разделе мы создадим эту тестовую среду.
1. Настроить тест каталог и измените каталог, чтобы вы находились внутри него.
mkdir test
cd test
2.Создайте 4 файла: test1, test2, test3 и test4.
touch test1 test2 test3 test4
ls
3. Редактировать тест1 с использованием нано содержать следующие имена в отдельных строках. Обратите внимание, что в тест1 ни одно из имен не содержит заглавных букв. После редактирования в нано Нажмите контроль х чтобы выйти, нажмите у для подтверждения сохранения, а затем нажмите войти.
nano test1
4. Добавьте в файл следующий текст. Затем нажмите CTRL + X, затем Y и Enter, чтобы сохранить и выйти.
ali
mohamed
claire
aled
steve
5. Редактировать тест2 с использованием нано. В тест2 мы добавим одну более длинную строку теста, содержащую имя Стив.
nano test2
6. Добавьте в файл следующий текст. Затем нажмите CTRL + X, затем Y и Enter, чтобы сохранить и выйти.
this is a long line of test that contains the name steve
7. Редактировать тест3 в нано. Похожий на тест1 мы добавим список имен в отдельных строках, но этот список будет включать имя Стивен.
nano test3
8. Добавьте в файл следующий текст. Затем нажмите CTRL + X, затем Y и Enter, чтобы сохранить и выйти.
alice
geoff
murbarak
mohamed
steven
9. Наконец редактировать тест4 для завершения нашей тестовой среды. Обратите внимание, что в этом файле мы используем заглавную букву в начале Стив.
nano test4
10. Добавьте в файл следующий текст. Затем нажмите CTRL + X, затем Y и Enter, чтобы сохранить и выйти.
Steve ?
Простой поиск с помощью grep
Поиск в файле определенной строки чрезвычайно полезен. Например, при отладке ошибки в файле журнала. Давайте начнем использовать grep в самом основном виде.
grep синтаксис команды просто grep за которым следуют любые аргументы, затем строка, которую мы хотим найти, и, наконец, место для поиска.
1. Поиск тест1 для строки Стив с помощью грэп. Критерии поиска чувствительны к регистру, поэтому убедитесь, что вы ищете правильно. Обратите внимание, что слово Стив просто возвращается красным цветом, чтобы указать, что он был найден в файле.
grep steve test1
2. Поиск одной и той же строки в нескольких файлах. Мы можем просто добавить список файлов в grep команду для поиска. Обратите внимание, что при наличии нескольких областей поиска возвращаемые результаты помечаются тегом каждого имени файла, из которого найден результат. Также обратите внимание, что grep возвращает полную строку текста, содержащую искомую строку.
grep steve test1 test2
3. Поиск всех файлов в каталоге. Добавление силы звездочки grep для поиска всех файлов в текущем каталоге. Обратите внимание, что возвращенные результаты включают результат из тест3 где строка поиска Стив содержится внутри Стивена. Обратите также внимание, что эти результаты не содержат результат от тест4 так как в своей основной форме grep команда чувствительна к регистру.
grep steve *
4. Добавьте аргумент -я делать grep без учета регистра. Это вернет результаты всех четырех тестовых файлов в каталоге.
grep -i steve *
Вывод конвейера в grep
Самый сильный вариант использования grep — это когда он работает в паре с другой командой. С помощью каналов мы отправляем вывод команды в grep и используйте его для поиска шаблонов/ключевых слов.
1. Откройте новое окно терминала.
2. Использовать lsusb чтобы просмотреть список всех USB-устройств, подключенных к вашей машине. Здесь также будут перечислены внутренние USB-устройства, такие как веб-камеры ноутбуков. Вывод будет отличаться в зависимости от вашей машины, но вы должны столкнуться со стеной текста.
lsusb
3. Использовать lsusb команда снова, но на этот раз используйте grep искать линукс. Добавляя трубу между lsusb а также grep вывод первой команды используется как ввод второй.
lsusb | grep Linux
Использование dmesg и grep для проверки кольцевого буфера ядра
Попробуем что-нибудь посложнее. На этот раз мы будем использовать dmesg а также grep для проверки кольцевого буфера ядра (по сути, файла журнала ядра). Мы будем искать ключевое слово в dmesg«secureboot» и убедитесь, что он включен.
1. Откройте терминал и запустите команду dmesg от имени sudo. Это напечатает стену вывода консоли на терминал, что-то, что мы можем найти с помощью grep.
sudo dmesg
2. Использовать grep команда для поиска «secureboot» в dmesg выход. Использовать -я аргумент чтобы отключить чувствительность к регистру, чтобы мы ловили каждое появление secureboot. Вывод покажет строки, в которых появляется secureboot в dmesg.
sudo dmesg | less | grep -i secureboot
Другое использование grep
Как и для многих команд Linux, существует множество полезных дополнений и вариантов для grep команда. Давайте рассмотрим пару интересных примеров.
1. Выполните обратный поиск с помощью -v аргумент. Это вернет список каждой строки из файлов тестовой среды, которая не содержит строку поиска. Стив. Этот аргумент полезен для отклонения строк в журналах или файлах при отладке проблемы. Обратите внимание, что результаты снова чувствительны к регистру и поэтому включают строку, содержащую заглавную букву Стив? из тест4.
grep -v steve *
2. Объедините -v а также -я аргументы для исключения всех совпадающих строк независимо от регистра.
grep -vi steve *
3. Найдите строку, содержащую не буквенно-цифровой текст или пробелы. Если вы включаете строку поиска с пробелом или другим небуквенно-цифровым текстом, это может нарушить grep синтаксис команды, чтобы создать строку поиска, содержащую их, вам нужно использовать кавычки, чтобы содержать строку. На этом шаге мы ищем «Стив?» который содержится в тест4 файл.
grep “Steve ?” *
Поиск подкаталогов с помощью grep
Как и для многих команд Linux, существует множество полезных дополнений и вариантов для grep команда. Давайте рассмотрим пару интересных примеров.
1. Выполните обратный поиск с помощью -v аргумент. Это вернет список каждой строки из файлов тестовой среды, которая не содержит строку поиска. Стив. Этот аргумент полезен для отклонения строк в журналах или файлах при отладке проблемы. Обратите внимание, что результаты снова чувствительны к регистру и поэтому включают строку, содержащую заглавную букву Стив? из тест4.
grep -v steve *
2. Объедините -v а также -я аргументы для исключения всех совпадающих строк независимо от регистра.
grep -vi steve *
3. Найдите строку, содержащую не буквенно-цифровой текст или пробелы. Если вы включаете строку поиска с пробелом или другим небуквенно-цифровым текстом, это может нарушить grep синтаксис команды, чтобы создать строку поиска, содержащую их, вам нужно использовать кавычки, чтобы содержать строку. На этом шаге мы ищем «Стив?» который содержится в тест4 файл.
grep “Steve ?” *
Поиск подкаталогов с помощью grep
Часто нам нужно искать строку в файлах, содержащихся в подкаталогах. Мы можем сделать это, просто добавив -р рекурсивный аргумент для grep команда.
1. Создайте подкаталог, содержащий тестовый файл в тест каталог.
mkdir sub_directory
cd sub_directory
touch test5
2. Откройте test5 с помощью текстового редактора nano. а также добавьте в файл текст «steve in a sub directory». Затем нажмите CTRL+X, затем Y и Enter чтобы сохранить и выйти.
nano test5.
3. Вернуться к тест каталог а также выполнить поиск, добавив -р вариант. Обратите внимание, что результат для тест5 включает расположение файла, указанного в выходных данных.
cd ..
grep -r steve *
С grep в Linux у вас есть хороший набор подходов для поиска содержимого файлов в вашей системе. Как и в случае со многими командами Linux, стоит заглянуть в меню справки, чтобы увидеть все различные аргументы, которые вы можете добавить к grep. Бежать грэп —ч в эмуляторе терминала, чтобы проверить все параметры.
БОЛЕЕ: Как проверить использование диска в Linux
БОЛЕЕ: Как убить процесс в Linux
БОЛЕЕ: Как найти файлы в Linux
[ad_2]