Як використовувати команду Grep в Linux

Розуміння команди grep з практичними прикладами для легкої фільтрації та відображення вмісту файлу

GREP розшифровується як «Глобальний друк регулярних виразів». Це корисна утиліта командного рядка, надана Linux, для пошуку текстового рядка, який відповідає шаблону, наданому користувачем.

grep приймає вхідні дані від користувача у вигляді рядків або слів, які користувач бажає шукати в певному файлі. Потім команда перевіряє вказаний користувачем файл для цього шаблону, а потім повертає рядки, які відповідають наданому шаблону.

Він чудово справляється з роботою, фільтруючи вміст файлу, таким чином полегшуючи наше завдання шукати певний вміст в одному або кількох файлах одночасно.

У цій статті розглянемо функціонування grep команду з деякими практичними прикладами в деталях.

Доступні варіанти з grep команда

Це деякі з основних параметрів, які ви будете часто використовувати з grep команда.

ВаріантОпис
Для пошуку без урахування регістру
-rДля рекурсивного пошуку всіх файлів у вказаному каталозі та його підкаталогах
-cЩоб відобразити загальну кількість показів рядка
-vЩоб відобразити невідповідні рядки
-wФільтр для цього окремого слова

Використання grep команда

grep команда зазвичай використовується з трубою (|) корисність. Його можна реалізувати за допомогою каналу оболонки, якщо ви хочете використовувати його з деякими іншими командами Linux. хоча, grep також можна використовувати окремо без труби (|) корисність.

Давайте подивимося на деякі з основних синтаксисів grep команда з і без утиліти pipe.

Дозвольте мені спочатку показати вам зразок текстового файлу, який я буду використовувати для ілюстрації grep команда.

ІНДІЯ — КРАСИВА КРАЇНА МИРОЛЮБИХ ЛЮДЕЙ. Індія стоїть на трьох стовпах законодавчої, виконавчої та судової влади. Індія — прекрасна країна миролюбних людей. Індія піклується про людей, оскільки її ресурс узгоджує значення всіх декартових координат. Далі два порожні рядки. використання волячої вози – звична справа в селі для аграрних справ. Це кінець файлу зразка.

grep використовується з трубою ( | )корисність

grep Команда може бути реалізована разом з іншими командами Linux за допомогою каналів оболонки. Наприклад, використовуючи кіт команду для відображення вмісту файлу, але водночас передачі виводу за допомогою grep команду для відображення лише вмісту, який ви бажаєте побачити. Це стане більш зрозумілим, коли ми розглянемо приклад.

Синтаксис:

[команда] | grep [рядок]

Приклад:

cat sample.txt | grep законодавчий орган

Тут я використав кіт команду для відображення деяких рядків із файлу «sample.txt». Відображаються лише ті рядки, які містять слово «законодавчий орган», а інші рядки ігноруються.

Вихід:

gaurav@ubuntu:~/workspace$ cat sample.txt | grep legislature india стоїть на трьох стовпах законодавчої, виконавчої та судової влади. gaurav@ubuntu:~/workspace$

grep використовується без труби ( | )корисність

grep можна навіть використовувати безпосередньо як окрему команду без використання каналу ( | ) корисність.

Синтаксис:

grep [string_to_be_searched] [ім'я файлу]

Приклад:

grep India sample.txt

Вихід:

Індія — прекрасна країна миролюбних людей. Індія піклується про людей як про свій ресурс

Таким чином, я використовував grep команду безпосередньо для фільтрації рядків, які містять рядок «India» з текстового файлу «sample.txt».

Використання пошуку без урахування регістру grep команда

Linux дуже обережно ставиться до чутливості до регістру, коли ми запускаємо команди на терміналі. Це вимагає від користувача уважного ставлення до регістру рядка, введеного в команду.

Давайте подивимося на це на прикладі.

grep peace sample.txt

У цьому випадку ми не отримаємо результат, оскільки у файлі зразка немає слова «мир». У нас є слово «Мир» з великої букви «П». Слово те саме, але коли ми використовуємо grep без будь-яких параметрів, він шукає точну відповідність у файлі, не враховуючи будь-яких змін у регістрі літер.

Щоб уникнути цієї двозначності, ви можете просто використовувати варіант, який буквально говорить grep команда «Забудьте про те, що я вставив рядок, і просто знайдіть усі відповідні шаблони у файлі».

Синтаксис:

grep -i [рядок] [ім'я файлу]

Приклад:

grep -i мир sample.txt

Вихід:

ІНДІЯ — КРАСИВА КРАЇНА МИРОЛЮБИХ ЛЮДЕЙ. Індія — прекрасна країна миролюбних людей.

Усі відповідні рядки відображаються незалежно від випадку, в якому знаходиться відповідний рядок.

Рекурсивний пошук за допомогою grep команда

The -r Опція шукає всі файли в каталозі та всіх його підкаталогах, які відповідають шаблону рядка, наданому користувачем у команді.

Синтаксис:

grep -i -r [рядок] [шлях до файлу]

Приклад:

grep -i -r tomcat /home/gaurav/workspace

Рядок тут — «tomcat», і він буде шукатися в робочій області каталогу. Усі підкаталоги та файли в каталозі «робочої області» також будуть скановані на відповідність наданому шаблону рядка.

Вихід:

./context_log.policy:// catalina.policy - Дозволи політики безпеки для Tomcat 7 ./context_log.policy:// Примітка: якщо tomcat-juli.jar знаходиться в ${catalina.base}, а не в ${catalina.home }, ./context_log.policy:// grant codeBase "file:${catalina.base}/bin/tomcat-juli.jar" {..} ./context_log.policy:grant codeBase "file:${catalina.home }/bin/tomcat-juli.jar" { ./context_log.policy: дозвіл java.lang.RuntimePermission "accessClassInPackage.org.apache.tomcat.websocket.server"; ./context.xml: ./catalina.properties:# – JAR-файли Tomcat Bootstrap ./catalina.properties:# – JAR-файли Tomcat API ./catalina.properties:# – JAR-файли Tomcat ./catalina.properties:# – звичайні файли JAR, які не належать до Tomcat JAR ./catalina.properties:org.apache.catalina.startup.TldConfig.jarsToSkip=tomcat7-websocket.jar ./catalina.properties:tomcat.util.buf.StringCache.byte.enabled=true ./catalina:#.properties . tomcat.util.buf.StringCache.char.enabled=true ./catalina.properties:#tomcat.util.buf.StringCache.trainThreshold=500000 ./catalina.properties:#tomcat.util.buf.StringCache=5.cache0Size. /server.xml: pathname="conf/tomcat-users.xml" /> ./server.xml: 

ПРИМІТКА: Під час використання -r варіант з grep нам потрібно вказати шлях до файлу, а не ім’я файлу

Пошук цілих слів тільки за допомогою grep команда

Часто буває так, що ви будете шукати одне слово, але в кінцевому підсумку ви заповните свій термінал відповідними рядками, які містять ваше відповідне слово, але не як окреме слово. Ви можете побачити рядки, які містять деякі слова, підчастиною яких є рядок, який ви ввели.

Заплуталися з цим? Не хвилюйтеся, це набагато легше зрозуміти, коли ви отримаєте приклад.

Приклад:

Тут я хочу здійснити пошук окремого слова «кошик» і відобразити всі рядки, що відповідають цьому слову, у файлі «sample.txt».

grep -i cart sample.txt

Вихід:

Важливість декартових координат усіх декартових координат. Використання волячої повозки – звичайна справа в селі для сільськогосподарських робіт. Віз пропав, коли хлопчик залишив його.

У результатах ви можете помітити, що слово «декартовий» також містить слово «кошик», а отже, рядки, що містять слово «декартів», також відображаються, навіть якщо ми не хочемо, щоб вони відображалися.

Ви можете використовувати -w варіант з grep команда вирішити цю неясність.

Синтаксис:

grep -i -w [рядок] [ім'я файлу]

Приклад:

grep -i -w кошик sample.txt

Вихід:

використання волячої вози – звична справа в селі для аграрних справ. Візок пропав, коли хлопчик залишив його. 

Тепер, коли ви скористалися –w варіант з grep ви отримаєте лише рядки, в яких слово «кошик» вжито в цілому.

Інвертований пошук за допомогою grep команда

grep Команда також може використовуватися в зворотному порядку. Ми можемо використовувати grep команда навпаки, приховуючи відповідні рядки та відображаючи лише ті рядки, де збіг не знайдено. Ви можете зробити це за допомогою -v варіант з grep команда.

Синтаксис:

grep -i -v [рядок] [ім'я файлу]

Приклад:

grep -i -v ресурс sample.txt

Вихід:

ІНДІЯ — КРАСИВА КРАЇНА МИРОЛЮБИХ ЛЮДЕЙ. Індія стоїть на трьох стовпах законодавчої, виконавчої та судової влади. Індія — прекрасна країна миролюбних людей. декартові координати значення всіх декартових координат. використання волячої вози – звична справа в селі для аграрних справ. Це кінець файлу зразка.

У виводі відображаються всі інші рядки, крім рядка, який містить слово «ресурс».

Підрахунок випадків відповідного рядка

Вихід з grep Команда зазвичай дуже довга, якщо дані у файлі великі. Чим більше збігів, тим довший вихід grep команда. Linux надає вам опцію, де ви можете відобразити кількість зустрічей збігу.

Синтаксис:

grep -i -c [рядок] [ім'я файлу]

Приклад:

grep -i -c Індія sample.txt

Вихід:

gaurav@ubuntu:~/workspace$ grep -i -c india sample.txt 4 gaurav@ubuntu:~/workspace$

Тут результатом є число, яке є кількістю зустрічей слова «Індія» у файлі sample.txt.

ПРИМІТКА: Я використовував опція в кожному прикладі, щоб бути в безпеці з проблемою чутливості до регістру. Якщо ви впевнені в регістрі слова, яке шукаєте, ви можете сміливо опускати йоговаріант.

Висновок

Ми дізналися про основні способи використання grep команду в системах Linux у цьому підручнику. Ми також навчилися відображати різноманітний контент, який найкраще відповідає нашим вимогам, і не завантажувати термінал купою ліній. grep Команда, безсумнівно, заощадить час, якщо використовувати її для сканування великих наборів даних.

Категорія: Linux