Командата grep се използва за търсене на низове в текстов файл. Ето десет примера за grep, които може да намерите за полезни.
Командата grep осигурява достъп до помощната програма grep, мощен инструмент за обработка на файлове, използван за намиране на модели в текстови файлове. Той има много практически приложения и със сигурност е една от най-използваните команди на Linux. Това ръководство илюстрира някои прости, но полезни команди на grep на Linux, които имат реална употреба.
Примерен файл за демонстрация
Създадохме референтен файл, за да помогнем на читателите да разберат grep по-ефективно. Можете да създадете копие на този файл, като издадете следната команда на черупката във вашия терминал.
котка <> тест-файл
Това е прост текстов файл, който съдържа
множество низове, както и някои телефонни номера
(555) 555-1234 (567) 666-2345
и имейл плюс уеб адреси
[email protected]
https://google.com
ftp://mywebserver.com
КРАЙ
1. Намерете текст във файлове
За да търсите текстов шаблон във файл, просто стартирайте grep, последван от името на шаблона. Също така посочете името на файла, който съдържа текста.
grep "имейл" тестов файл
Тази команда ще покаже реда в нашия тестов файл който съдържа думата електронна поща. Можете също да търсите един и същ текст в множество файлове, като използвате grep.
grep "пример" / usr / share / dict / american-english / usr / share / dict / british-english
Горната команда показва всички екземпляри на думата пример в американски английски и британски английски речникови файлове.
2. Намерете думи с точно съвпадение
Командата grep на Linux, илюстрирана в по-ранния пример, също изброява редове с частични съвпадения. Използвайте командата, дадена по-долу, ако имате нужда само от точното появяване на дума.
grep -w "низ" тестов файл
The -w или --word-regexp опцията grep ограничава изхода само до точни съвпадения. Grep се състои от някои допълнителни флагове, които могат да се използват и с командата по подразбиране.
Свързани: Как Grep получи името си? Историята зад творението на Греп
3. Игнорирайте разликите между регистрите
По подразбиране grep търси модели по регистър на буквите. Може обаче да искате да изключите това, ако не знаете в какъв случай моделът е предварително.
grep -i "този" тестов файл
Използвай -и или --ignore-case опция за изключване на чувствителността на регистъра.
4. Пребройте броя на шаблоните
The -° С флаг означава броя. Той показва броя на съвпаденията, които са намерени за определен модел. Администраторите могат да използват това за извличане на конкретна информация за системата.
Можете да тръбите командата ps с grep за броене на процесите, които принадлежат на текущия потребител.
ps -ef | grep -c $ ПОТРЕБИТЕЛ
Следващата команда показва броя на MP3 файлове в директорията.
ls ~ / Музика | grep -c .mp3
5. Показване на номера на редове, съдържащи съвпадения
Може да поискате да намерите номерата на редовете, които съдържат определено съвпадение. Използвай -н или - ред-номер опция на grep за постигане на това.
cat / etc / passwd | grep -n rubaiat
Тази опция е особено полезна за отстраняване на грешки в изходните кодове и отстраняване на проблеми с регистрационни файлове. За да покажете всички числа за редове в ~ / .vimrc които се използват за конфигуриране на текстовия редактор на Vim:
grep -n "set" ~ / .vimrc
6. Намерете имена на файлове с помощта на разширения
За да получите списък на всички MP3 файлове, присъстващи в ~ / Музика директория:
ls ~ / Музика / | grep ".mp3"
Можете да замените .mp3 с всякакви други разширения за намиране на конкретни файлове. Следващата команда изброява всички php файлове, присъстващи в текущата работна директория.
ls | grep ".php"
7. Намерете образци в компресирани файлове
Командата grep на Linux също може да намери модели в компресираните файлове. Ще трябва да използвате zgrep команда за това обаче. Първо, създайте компресиран архив на нашите тестов файл като напишете:
gzip тестов файл
Сега можете да търсите текст или други модели в получения архив.
zgrep имейл test-file.gz
8. Намерете имейл адреси
Администраторите могат също да изброяват имейл адреси от текстови файлове с помощта на командата Linux grep. Следващият пример прави това чрез търсене на шаблон на регулярен израз.
grep '^ [a-zA-Z0-9] \ + @ [a-zA-Z0-9] \ + \. [a-z] \ {2, \}' тестов файл
Можете да намерите регулярни изрази за извършване на подобни задачи или можете да ги създадете сами, ако знаете как работят.
9. Намерете телефонни номера с помощта на Grep
Можете да използвате регулярни изрази grep за филтриране на телефонни номера от текстов файл. Имайте предвид, че ще трябва да промените шаблона, за да съответства на типа телефонни номера, от които се нуждаете.
grep '\ (([0-9] \ {3 \}) \ | [0-9] \ {3 \} \) [-] \? [0-9] \ {3 \} [-] \? [0-9] \ {4 \} 'тестов файл
Гореспоменатата команда филтрира десетцифрени американски телефонни номера.
10. Намерете URL адреси от изходни файлове
Можем да използваме силата на grep за изброяване на URL адреси, намерени в текстови файлове. Дадената по-долу команда отпечатва всички URL адреси в тестов файл.
grep -E "^ (http | https | ftp): [\ /] {2} ([a-zA-Z0-9 \ - \.] + \. [a-zA-Z] {2,4}) "тестов файл
Отново използваме -Е опция за разширени регулярни изрази. Можете също да използвате егреп команда, за да се избегне добавянето на това.
egrep "^ (http | https | ftp): [\ /] {2} ([a-zA-Z0-9 \ - \.] + \. [a-zA-Z] {2,4})" тест -файл
Овладяване на командата Linux Grep
Представихме няколко полезни примера за командата Linux grep за справяне с реални проблеми. Въпреки че тези примери илюстрират силата на grep за обработка на текст, ще трябва да овладеете регулярни изрази, ако искате да бъдете супер продуктивни с grep.
Понякога потребителите на Linux се натъкват на определени ситуации, в които не могат да си спомнят различните опции, свързани с команда. Надяваме се, че операционната система Linux ви предоставя начини да получите помощ за командния ред за почти всяка системна помощна програма.
Всички основни команди за научаване на Linux команди от командния ред
Прочетете Напред
- Linux
- Linux
- Linux команди
Rubaiat е CS град със силна страст към отворен код. Освен ветеран на Unix, той се занимава и с мрежова сигурност, криптография и функционално програмиране. Той е запален колекционер на книги втора ръка и изпитва безкрайно възхищение от класическия рок.
Абонирайте се за нашия бюлетин
Присъединете се към нашия бюлетин за технически съвети, рецензии, безплатни електронни книги и ексклузивни оферти!
Още една стъпка…!
Моля, потвърдете имейл адреса си в имейла, който току-що ви изпратихме.