Синтаксис
$ grep 'pattern1 \ | pattern2' ім'я файлуРегулярний вираз завжди пишеться в одних цитатах. Два імена розділяються операторами зворотної косої риски та зміни. Команда закінчується іменем файлу. Виконуючи grep рекурсивно, замість одного імені файлу використовується каталог або весь шлях.
Обов’язкова умова
У цій статті ми дізнаємось про функціональність grep при пошуку за різними шаблонами та рядками. Для цього вам потрібно мати операційну систему Linux, яка працює на вашому віртуальному вікні. Вам потрібно встановити його у вашій системі. Після налаштування ви матимете доступ до використання всіх програм. Після входу до користувача, вказавши пароль, перейдіть до командного рядка оболонки терміналу, щоб продовжити.
Пошук за декількома шаблонами у файлі за допомогою Grep
Якщо ми хочемо здійснити пошук у декількох шаблонах або рядках у певному файлі, використовуйте функцію grep для сортування у файлі за допомогою декількох вхідних слів у команді. Ми використовуємо '\ |' оператори для розділення двох шаблонів у команді.
$ grep 'технічна \ | робота' filea.txtКоманда відображає, як працює grep. Обидва згадані файли буде здійснено пошук у файлі filea.txt. Шукані слова виділяються у всьому тексті вихідних даних.
Для пошуку більше двох слів ми продовжуватимемо додавати їх тим самим способом.
$ grep 'graphics \ | photoshop \ | файл плакатів' b.txt
Шукати в декількох рядках, ігноруючи регістр
Щоб зрозуміти поняття чутливості до регістру у функції grep в Linux, розглянемо наступний приклад. На grep працюють дві команди. Один з "-i", а інший без. Цей приклад демонструє відмінності між командами. Перший показує, що два слова будуть шукатись у даному файлі. Однак, як зазначено в команді “Aqsa”, вона починається з великої літери A. Таким чином, він не буде виділений, оскільки в певному файлі цей текст написано малими літерами.
$ grep 'Aqsa \ | сестра' файл20.txtТут буде розглядатися лише слово сестра, яке буде видно у вихідних даних.
У другому прикладі ми проігнорували чутливість до регістру, використовуючи прапор “-I”. Ця функція буде шукати обидва слова, а результат буде виділено. Незалежно від того, написано слово "Aqsa" великими літерами чи ні, grep шукатиме той самий збіг у тексті всередині файлу. Отже, обидві команди корисні по-своєму.
$ grep -Я 'Aqsa \ | сестра' файл20.txt
Підрахунок декількох збігів у файлі
Функція підрахунку допомагає підрахувати входження слова чи слів у певний файл. Наприклад, якщо ви хочете знати про помилки, що трапляються в системі. Деталі записуються у файл журналів. Щоб зберегти цю інформацію в певній папці, ви напишете шлях до папок. Цей приклад показує, що у файлах журналів сталася 71 помилка.
Шукати точні збіги у файлі
Якщо ви хочете знайти точну відповідність у файлах вашої системи, вам потрібно використовувати прапорець “-w”, щоб точно відсортувати її. Ми навели простий і вичерпний приклад. У наведеному нижче прикладі розгляньте пошук без “-w”, ця команда приведе обидва слова як відповідні заданому вводу. Але з використанням прапорця “-w” пошук буде обмеженим, оскільки вхідні слова відповідають лише першому рядку. Друге слово не виділено, оскільки “-w” дозволяє точно відповідати шаблону.
$ -iw 'hamna \ | house' файл21.txtТут -I також використовується для усунення чутливості до регістру при пошуку тексту.
Як видно на фото, результати не однакові. Перша команда передає всі пов'язані дані з цілими рядками, тоді як друга команда показує, як точні дані збігаються за допомогою grep при пошуку кількох рядків.
Grep для більш ніж одного шаблону в певному типі розширення файлу
Пошук здійснюється у всіх файлах. Якщо ви шукаєте, вказавши назву файлу, залежить від вас. Він буде шукати лише у певних файлах. Але, надавши розширення файлу, дані будуть шукатись у всіх файлах того самого розширення. Існує два різні приклади, щоб зобразити відповідний результат. Розглядаючи перший приклад, файли помилок будуть враховані у всіх файлах .розширення журналу. “-C” використовується для підрахунку.
$ grep -c 'попередження \ | помилка' / var / log / *.журнал
Ця команда означає, що файли будуть шукатись у всіх файлах .розширення журналу. Кількість збігів буде показано у вихідних даних, щоб краще продемонструвати grep із конкретним розширенням файлу.
У другому прикладі ми використали два слова у наших файлах у Linux із розширенням тексту. Усі дані відображатимуться у вигляді цифр. 0 вказує відсутність відповідних даних, тоді як інше, ніж 0, означає, що збіг існує.
$ grep -c 'aqsa \ | my' / home / aqsayasin / *.txt
Рекурсивний пошук декількох шаблонів у файлі
За замовчуванням використовується поточний каталог, якщо в команді немає жодного каталогу. Якщо ви хочете шукати в обраному вами каталозі, то вам доведеться про це згадати. Оператор “-r” використовується для grep рекурсивно./ home / aqsayasin / показує шлях до файлів, тоді як *.txt показує розширення. Текстові файли будуть ціллю для grep для рекурсивного пошуку.
$ grep -R 'технічний \ | безкоштовний' / home / aqsayasin / *.txt
Бажаний результат виділяється в результаті, що показує існування цих слів.
Висновок
У згаданій вище статті ми наводили різні приклади, щоб полегшити користувачеві розуміння роботи команд для пошуку декількох шаблонів у Linux. Цей посібник допоможе вам розробити ваші знання.