grep

Команда grep Linux

Команда grep Linux
Grep - це один з найбільш зручних інструментів, якими ви можете скористатися. Ця утиліта командного рядка виконує пошук у наборах даних простого тексту. Греп насправді є абревіатурою від “gлокальний пошук a ркутовий expression і сторринт ”. Греп розпочав свою подорож як частина родини UNIX. З часом він доступний для всіх популярних платформ, таких як Linux, Mac, BSD і навіть Windows!

Чи використовували ви раніше grep? Здебільшого основний grep-трюк може виконати більшу частину роботи. Однак grep пропонує безліч способів виконати пошук та тонке налаштування виводу на більш зручну версію. У цій статті давайте перевіримо використання команди grep.

Використання Grep

Перевірка існування

Якщо ви використовуєте будь-який дистрибутив Linux, то у вас вже встановлений grep. Виконайте наступну команду в терміналі.

grep --версія

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

Основи

Основне використання grep має наступну структуру.

grep

Або для легшого розуміння скористайтеся цим.

grep -e -f

У цьому випадку grep виконує пошук у файлі та друкує всі рядки, що містять шаблон (пошуковий термін).

grep python ~ / Робочий стіл / Список пакетів.txt

Греп здійснив пошук у файлі “PackageList.txt ”Я створив раніше і надрукував усі рядки, що містять“ python ”.

Цю саму операцію можна виконати іншим способом. Перегляньте наступний приклад.

cat ~ / Робочий стіл / Список пакетів.txt | grep python

Тут, використовуючи команду “cat”, я надіслав вміст файлу “PackageList.txt ”у grep. Використовуючи вихідні дані cat, grep здійснив пошук і надрукував рядки, що містять пошуковий термін.

Тепер приходить весела річ. Ви можете буквально складати кілька команд grep просто так.

cat ~ / Робочий стіл / Список пакетів.txt | grep - | grep p | grep python

Перший grep фільтрується до рядків з дефісом, другий фільтр до рядків з p, а остаточний grep фільтрується до рядків з python. Має сенс?

Чутливість до регістру

При виконанні пошуку головне питання - чутливість до регістру. За замовчуванням grep чутливий до регістру.

Наприклад, пошук за “Python” не покаже жодного результату.

cat ~ / Робочий стіл / Список пакетів.txt | grep Python

Щоб зробити регістр grep "нечутливим", додайте наступний параметр.

cat ~ / Робочий стіл / Список пакетів.txt | grep -i Python

Пошук файлів

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

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

Для переліку файлів, що містять збіг, використовуйте прапорець -l.

grep -l / search / directory / *

Як підказує результат, термін "python" присутній у всіх 3 файлах, що знаходяться в каталозі "Робочий стіл".

Для переліку файлів без будь-якого збігу використовуйте прапорець -L.

grep -L / search / directory / *

“NoMatch.txt ”- єдиний файл, який не містить термін„ python ”.

Перевернутий пошук

Поведінка grep за замовчуванням - друк лише рядків із відповідним шаблоном, праворуч? Настав час змінити процес. Цього разу ми будемо друкувати лише рядки БЕЗ відповідного зразка.

Просто передайте опцію “-v” для grep.

cat ~ / Робочий стіл / Список пакетів.txt | grep -i -v Python

Друк рядків до / після матчу

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

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

grep -B

Тут 5 - це рядок із номером, який grep надрукує ДО відповідного рядка.

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

grep -A

Як щодо друку як до, так і після відповідного рядка? У такому випадку використовуйте прапор “-C”.

grep -C

Номер рядка

Коли grep показує вихідні дані, він не згадує номер рядка. Для відповідних номерів рядків використовуйте прапор “-n”.

grep -n

Одне слово

Якщо використовується прапор “-w”, grep буде розглядати шаблон як ціле слово.

grep -w

Обмеження пошуку grep

Grep дозволяє вказати кількість рядків для пошуку у файлі. Цей метод корисний, якщо ви маєте справу з великим файлом (наприклад, системним журналом). Використовуйте прапор “-m”.

grep -m

Рекурсивний пошук

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

grep -R

Або,

grep -r

Я часто виявляю використання цієї рекурсивної функції разом із прапором “-l”.

Тихий режим

Grep можна запускати в "тихому" режимі. У режимі "тихого" режиму grep не надрукує жодних вихідних даних на терміналі. Натомість він поверне 0 (принаймні, збіг знайдено) або 1 (збіг не знайдено).

grep -q
echo $?

Regex

Grep також дозволяє шукати регулярні вирази (регулярні вирази). Це додає абсолютно новий рівень складності та зручності використання grep як інструменту пошуку.

Наприклад, ви можете скористатися дужками для одночасного пошуку і "занадто", і "двох".

cat ~ / Робочий стіл / gpl-3.0.txt | grep t [wo] o

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

grep ^ GNU ~ / Desktop / gpl-3.0.txt

Що стосується відповідності закінчення, використовуйте це.

grep вам $ ~ / Desktop / gpl-3.0.txt

Якщо ви хочете використовувати регулярний вираз Perl, використовуйте прапор “-P”. Він буде розглядати шаблон як регулярний вираз Perl.

grep -P

Заключні думки

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

Щоб отримати найбільш детальне пояснення, завжди звертайтесь до сторінки керівництва.

людина grep

Ура!

WinMouse lets you customize & improve mouse pointer movement on Windows PC
If you want to improve the default functions of your mouse pointer use freeware WinMouse. It adds more features to help you get the most out of your h...
Mouse left-click button not working on Windows 10
If you are using a dedicated mouse with your laptop, or desktop computer but the mouse left-click button is not working on Windows 10/8/7 for some rea...
Cursor jumps or moves randomly while typing in Windows 10
If you find that your mouse cursor jumps or moves on its own, automatically, randomly while typing in Windows laptop or computer, then some of these s...