Вы хотите найти файл, содержимое которого представляет собой определенный текст?

Кукла с увеличительным стеклом

Некоторые спрашивали меня о функциональных возможностях последних версий Microsoft Windows, в которых вы можете использовать их поисковую систему для поиска не только файлов с определенным именем, но вы также можете включить текст для поиска файлы, содержащие такой текст, например PDF-файлы, документы Microsoft Office, текстовые файлы .txt и т. д. Что ж, вы должны знать, что в вашем дистрибутиве GNU / Linux вы можете делать это и многое другое.

Мы уже сделали небольшие уроки в LxA по таким командам, как find, whereis, locate и т. Д. Теперь мы расскажем вам, как воссоздать эту функциональность, о которой я говорил в первом абзаце, с вашей консоли. Как я уже сказал, Linux чрезвычайно гибок и имеет различные инструменты для поиска вещей, здесь мы собираемся показать вам некоторые из различных способов, которые вы можете использовать для поиска файлов, в которых найден определенный текст или строка: искать слово или строку в файлах каталога вы можете использовать:

grep -s hola /home/*

grep -R hola /home/*

grep -Rw hola /home/*

В предыдущем примере мы искали слово «hello» в каталоге / home во всех существующих файлах. В первом случае с параметром -s выполняется нерекурсивный поиск, а с параметром -R он становится рекурсивным, поэтому, если внутри есть подкаталоги, он также будет искать там ... Но будьте осторожны, это приведет к поиску всего содержимого с этой строкой «hello», поэтому, если есть фраза или слово вроде «hello», оно также будет считаться действительным и показывать файлы, содержащие это слово, то есть он не ищет это слово определенным образом. Чтобы конкретизировать, вы можете использовать третий вариант.

Помните, что поиск будет выполняться с учетом регистра, поэтому в предыдущих примерах игнорировались такие вещи, как Hello, HELLO, holA и т. Д. Сделать искать и игнорировать регистр, то вы можете использовать опцию -i.

Представьте, что вы хотите выполнить поиск в обратном направлении, то есть все те файлы, в которых не включать строку или слово конкретный. Не могли бы вы? Правда в том, что да, например:

grep -Rlv hola /home/*

grep --exclude-dir= /home/Desktop -Rlv /home/*

В первом примере он покажет весь список файлов, которые не содержат слова «привет», а во втором случае он будет делать то же самое, но найденные файлы исключаются размещено в / home / Desktop… Кстати, этот параметр –exclude-dir = также можно использовать в первых примерах…


Комментарий, оставьте свой

Оставьте свой комментарий

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

*

*

  1. Ответственный за данные: AB Internet Networks 2008 SL
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.

  1.   Тьяго Виго сказал

    Grazas per isto.