Как найти строку в файлах на линукс (Ubuntu)?

Как найти строку в файлах на линукс (Ubuntu)?

Кто использует линукс (не важно какой именно дистрибутив) в работе или на домашнем ПК, могут эффективно автоматизировать рутинные задачи. Например, в этой статье я расскажу как можна быстро найти какую-то строку в куче файлов.

Как найти строку в файлах на линукс?

В этом нам поможет утилита командной строки под названием grep. Она ищет строки, которые отвечают регулярному выражению и выводит их на консоль.

Обратите внимание на следующее

  1. Используйте скобки, если строка содержит пробелы «текст команды«.
  2. Помните про пробелы между расширениями {js,java}
  3. Не используйте фигурные скобки для одного расширения {java}  -> java

Ниже представлены наиболее полезные команды, которые я использую в повседневной работе, а также другие работающие команды, найденные на просторах Интернета:

Простой поиск строки в файле

Структура команды: grep строка названиеФайла

Пример использования: grep name file.txt

Поиск строки в файле игнорируя чувствительность к регистру

Структура команды: grep строка названиеФайла

Пример использования: grep -i name file.txt

Найти строку в текущей директории

Структура команды: grep строка .

Пример использования: grep name .

Найти строку рекурсивно

Структура команды: grep -r строка .

Пример использования: grep -r name .

Найти файлы, которые не содержать определенную строку

Структура команды: grep -L строка *

Пример использования: grep -L "foo" *

Рекурсивно найти строку только в определенных файлах

Структура команды:

grep  строка -r . —include=*.расширениеФайла 

grep строка -r . —include=*.{расширениеФайла, расширениеФайла2}

Пример использования: grep "name=Main" -r . --include=*.java

Обратите внимание! Эти команды буду искать только в тех файлах, которые вы определили в секции —include=*.{…}

Рекурсивно найти строку кроме определенных расширений

Структура команды: grep  строка -r . —exclude=*.{расширениеФайла}

Пример использования: grep "Serializable" -r . --exclude=*.{jar,js,index}

Рекурсивно найти строку в определенных расширениях, исключая указанные

Структура команды:

grep  строка -r . —include=*.расширениеФайла  —exclude=*.расширениеФайла2

grep  строка -r . —include=*.{расширениеФайла,расширениеФайла2} —exclude=*.{расширениеФайла3,расширениеФайла2}

Пример использования: grep "name=Main" -r . --include=*.{java,html} --exclude=*.java

Обратите внимание! Команда выше не будет искать в файлах с расширением .java

Ищите другие полезности в специальном разделе.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *