Windows Tips & News

Знайдіть файли, що містять певний текст у Linux

click fraud protection

Linux, незалежно від того, який дистрибутив ви використовуєте, постачається з низкою інструментів GUI, які дозволяють шукати файли. Багато сучасних файлових менеджерів підтримують пошук файлів прямо в списку файлів. Однак існує ряд ситуацій, коли вам потрібно використовувати консоль, наприклад, під час сеансу SSH або коли X-сервер не запускається. Ось як можна швидко знайти файли, що містять певний текст, за допомогою терміналу.

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

Однак жоден із файлових менеджерів, які я пробував, не дозволяє шукати вміст файлів.

Щоб обійти це обмеження під час роботи в сесії GUI, ви можете використовувати Сatfish. Сом - популярний інструмент пошуку. Дозволяє шукати вміст файлу. Вам потрібно натиснути на значок шестірні та включити опцію Пошук у вмісті файлу.

Однак, коли справа доходить до терміналу, ви не можете використовувати будь-який графічний інструмент. Крім того, я вважаю, що Catfish не є корисним і віддаю перевагу класичним консольним інструментам перед ним. Ось методи та інструменти, які я використовую.

Щоб знайти файли, що містять певний текст у Linux, виконайте наступне.

  1. Відкрийте свою улюблену програму терміналу. термінал XFCE4 це мої особисті переваги.
  2. Введіть таку команду:
    знайти ./ -type f -exec grep -l "текст для пошуку" {} \;
  3. Це створить список файлів, який містить необхідну частину тексту.

Команда find шукатиме файли, починаючи з поточного каталогу "./". Натомість можна вказати потрібний шлях.

Варіант -тип f каже йому шукати лише файли та виключати каталоги. Крім того, ви можете зробити так, щоб він шукав лише файл певного типу, додавши параметр таким чином:
знайти ./ -type f -iname "*.txt" -exec grep -l "текст для пошуку" {} \;

Дивіться наступний знімок екрана:

The -exec Параметр викликає інструмент grep для кожного з відповідних файлів, щоб перевірити їх вміст. Якщо текст знайдено у файлі, його ім’я буде додано до виводу завдяки -l варіант.

Альтернативи

Існують альтернативи описаним вище методам. Перш за все, ви можете використовувати тільки grep інструмент. Спробуйте виконати таку команду:

grep -iRl "текст для пошуку" ./

  • -i означає ігнорувати регістр тексту.
  • -R означає рекурсивну обробку файлів.
  • -l означає "показати ім'я файлу, а не сам результат".

Як бачите, цей метод менш гнучкий, ніж метод знайти команда.

Командир опівночі

Інший метод, який я часто використовую, — Midnight Commander (mc), консольний додаток для керування файлами. На відміну від find або grep, mc не включений за замовчуванням у всі дистрибутиви Linux, які я пробував. Можливо, вам знадобиться встановити його самостійно.

Щоб знайти файли, що містять певний текст за допомогою Midnight Commander, запустіть програму та натисніть на клавіатурі наступну послідовність:
Альт + Зміна + ?
Це відкриє діалогове вікно пошуку.

Заповніть розділ «Назва файлу:». Ви можете вказати щось на кшталт "*.txt", щоб шукати текст лише в текстових файлах.

Тепер заповніть Зміст: коробка. Введіть текст, який містять файли, і натисніть клавішу Enter.

Він знайде всі файли, які відповідають критеріям.

Це воно.

Завантажити Завантажити Cyanian_2010 Skin для Winamp

Цей веб-сайт використовує файли cookie, щоб покращити ваш досвід під час навігації веб-сайтом. З ...

Читати далі

Завантажити Завантажити PreSlice Skin для Winamp

Цей веб-сайт використовує файли cookie, щоб покращити ваш досвід під час навігації веб-сайтом. З ...

Читати далі

Налаштувати. RU_Skin Winamp Skin

Цей веб-сайт використовує файли cookie, щоб покращити ваш досвід під час навігації веб-сайтом. З ...

Читати далі