Команда Grep: потужний інструмент для пошуку тексту з терміналу

Команда Grep

Майже кожен, хто має комп’ютер або працює з ним, знатиме комбінацію клавіш Ctrl + F для пошуку тексту. "F" означає "Знайти", "знайти" англійською мовою і може використовуватися, наприклад, для пошуку тексту на веб-сторінці. Цей ярлик також доступний у багатьох програмах, є програми, які використовують "B" для "Пошук", але ці ярлики працюють лише у тому випадку, якщо ми знаходимось у програмі та з відкритим файлом. У Linux ми маємо дуже потужні інструменти, які ми можемо запустити з терміналу і за бажанням знайти будь-який текст, який є в нашій команді, ми будемо використовувати команду GREP.

GREP Це команда, яка допоможе нам знайти текст у файлі, який ми вказуємо. Його назва походить від g / re / p, команди, яка працює для чогось подібного в текстовому редакторі Unix / Linux. Як і багато інших команд, GREP Має багато доступні варіанти, які ми додамо у вигляді літер і кожен з них буде виконувати різне завдання. Поєднавши ці параметри, ми зможемо виконувати складні пошуки в одному або декількох файлах. Тут ми покажемо вам все, що вам потрібно знати.

з GREP ми знайдемо будь-який текст у будь-якому файлі

Перш за все ми пояснимо доступні варіанти:

  • -i: не розрізнятиме великі та малі літери.
  • -w: змусити його знаходити лише конкретні слова.
  • -v: виділяє рядки, які не збігаються.
  • -n: показує номер рядка із запитаними словами.
  • -h: видаляє префікс з імені файлу Unix у вихідних даних.
  • -r: рекурсивно шукає каталоги.
  • -R: як -r, але переходьте за всіма символічними посиланнями.
  • -l: показує лише імена файлів із вибраними рядками.
  • -c- Показує лише один підрахунок на файл із вибраних рядків.
  • -Колір: Відображає відповідні візерунки у кольорах.

На зображенні, яке ви очолюєте в цій статті, я шукав слово "Зображення" у файлі "830.desktop", який знаходиться у цьому шляху. Як бачите, я писав:

grep Imágenes /home/pablinux/Documentos/830.desktop

Майте на увазі, що в цій статті ми напишемо приклади, які повинні бути змінені відповідно до наших налаштувань пошуку. Сказавши "Файл", "Word" тощо, ми будемо посилатися на файл із його шляхом. Якби я щойно написав "grep Images 830.desktop", я отримав би повідомлення про те, що файл не існує. Або так було б, якщо файл не знаходився у кореневому каталозі.

Іншими прикладами можуть бути:

  • grep -i images /home/pablinux/Documentos/830.desktop, де "зображення" - це слово, яке ми хочемо знайти, а решта - файл із його шляхом. У цьому прикладі буде здійснено пошук "зображень" у файлі "830.desktop", чутливий до регістру.
  • grep -R зображення: він буде здійснювати пошук у всіх рядках каталогу та у всіх його підкаталогах, де є слово "images".
  • grep -c приклад test.txt: це буде шукати нас і покаже загальну кількість випадків, коли "приклад" з'являється у файлі "test.txt".

З grep ми також можемо шукати файли

Якщо ми хочемо знайти файл 830.desktop, ми напишемо таку команду:

grep 830.desktop

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

Як виконувати рекурсивні пошуки

GREP це також дозволяє нам виконувати обшуки з урахуванням регулярних правил або вказівок. Наприклад, прочитайте всі файли в кожному каталозі, що містять слово "Pablinux". Для цього ми напишемо:

grep -r Pablinux /home/

Ну добре:

grep -R Pablinux /home/

Результати "Pablinux" ми побачимо в окремому рядку, перед яким стоїть ім'я файлу, в якому його було знайдено. Якщо ми не хочемо бачити імена файлів у вихідних даних, ми використаємо опцію -h (з "сховати"; сховати):

grep -h -R Pablinux /home/

Ми можемо об'єднати параметри разом і написати "-hR" без лапок.

Як виконувати точний пошук слів

Іноді є файли, що містять те, що ми хочемо шукати щось інше. Наприклад, це може трапитися з нами у складних словах, і, шукаючи "ліси", ми можемо знайти "лісників". Якщо ми хочемо знайти точне слово ми будемо використовувати опцію -w:

grep -w bosques /home/pablinux/Documentos/vacaciones.txt

Вищенаведена команда буде шукати "ліси", ігноруючи рейнджерів, у файлі "holiday.txt" у вказаному шляху. Якщо ми хочемо шукати два різні слова, ми будемо використовувати команду егреп:

egrep -w bosques|plantas /ruta/del/archivo

Знайте, скільки разів слово з’являється у файлі

GREP це також здатне підрахувати, скільки разів з’являється слово у файлі. Для цього ми використаємо опцію -c:

grep -c prueba /ruta/al/archivo

Додавши опцію -n, що ми побачимо, це номер рядка, у якому з'являється слово.

Зворотний пошук

Ми також можемо зробити протилежне, тобто пошук рядків, що не містять слова. Для цього ми використаємо параметр -v, який буде таким:

grep -v la ruta/al/archivo

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

Доступ до системної інформації за допомогою GREP

Модель ПК

GREP він не тільки здатний здійснювати пошук у файлах. Це також здатний переглядати системну інформацію. На попередньому скріншоті ми бачимо, як він показує нам, яка модель ПК у нас (я знаю, що це не найпотужніший ноутбук у світі). Для цього ми використали команду:

cat /proc/cpuinfo | grep -i 'Model'

Ну добре:

grep -i 'Model' /proc/cpuinfo

Якщо ми хочемо побачити імена дискових одиниць, ми напишемо:

dmesg | egrep '(s|h)d[a-z]'

Як перерахувати лише відповідні імена файлів

Якщо ми хочемо побачити список лише з іменами файлів, які відповідають пошуку, ми використаємо опцію -l, як показано нижче:

grep -l 'main' *.c

І якщо ми хочемо бачити слово у кольорах, то напишемо:

grep --color palabra /ruta/al/archivo

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


Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

  1. Відповідальний за дані: Мігель Анхель Гатон
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.

  1.   Нордрі - сказав він

    Здрастуйте!
    Коли ви говорите, що Grep також використовується для пошуку файлів, я вважаю, що це не правильно, тому що якщо ви запустите grep EXPRESSION і не передасте йому файл, він буде чекати введення даних із стандартного вводу.
    Відповідно до сторінки керівництва:
    grep шукає в іменованих вхідних ФАЙЛАХ рядки, що містять відповідність даному ШАБЛОНУ. Якщо файли не вказані, або якщо вказано файл “-”, grep шукає стандартний ввід.
    Ось чому ви можете використовувати його в конвеєрах, на зразок того, який аналізує вихідні дані / proc / cpuinfo, передаючи вихідні дані цієї команди як вхідні дані для grep, щоб ви могли здійснити пошук.
    вітання

  2.   висловів - сказав він

    Дуже хороший пост.
    Ви дуже добре це пояснюєте і переходите прямо до суті.