утилита поиска строк grep что это такое

Что такое grep и с чем его едят

Эта заметка навеяна мелькавшими последнее время на хабре постами двух тематик — «интересные команды unix» и «как я подбирал программиста». И описываемые там команды, конечно, местами интересные, но редко практически полезные, а выясняется, что реально полезным инструментарием мы пользоваться и не умеем.
Небольшое лирическое отступление:
Года три назад меня попросили провести собеседование с претендентами на должность unix-сисадмина. На двух крупнейших на тот момент фриланс-биржах на вакансию откликнулись восемь претендентов, двое из которых входили в ТОП-5 рейтинга этих бирж. Я никогда не требую от админов знания наизусть конфигов и считаю, что нужный софт всегда освоится, если есть желание читать, логика в действиях и умение правильно пользоваться инструментарием системы. Посему для начала претендентам были даны две задачки, примерно такого плана:
— поместить задание в крон, которое будет выполняться в каждый чётный час и в 3 часа;
— распечатать из файла /var/run/dmesg.boot информацию о процессоре.

К моему удивлению никто из претендентов с обоими вопросами не справился. Двое, в принципе, не знали о существовании grep.

утилита поиска строк grep что это такое. Смотреть фото утилита поиска строк grep что это такое. Смотреть картинку утилита поиска строк grep что это такое. Картинка про утилита поиска строк grep что это такое. Фото утилита поиска строк grep что это такое

Поэтому… Лето… Пятница… Перед шашлыками немного поговорим о grep.

Зная местную публику и дабы не возникало излишних инсинуаций сообщаю, что всё нижеизложенное справедливо для

Это важно в связи с

Для начала о том как мы обычно grep’аем файлы.
Используя cat:

Но зачем? Ведь можно и так:

Или вот так (ненавижу такую конструкцию):

Зачем-то считаем отобранные строки с помощью wc:

Сделаем тестовый файлик:

И приступим к поискам:
Опция -w позволяет искать по слову целиком:

А если нужно по началу или концу слова?

Стоящие в начале или конце строки?

Хотите увидеть строки в окрестности искомой?

Только снизу или сверху?

А ещё мы умеем так

И наоборот исключая эти

Разумеется grep поддерживает и прочие базовые квантификаторы, метасимволы и другие прелести регулярок
Пару практических примеров:

Отбираем только строки с ip:

Работает, но так симпатичнее:

Уберём строку с комментарием?

А теперь выберем только сами ip

Вот незадача… Закомментированная строка вернулась. Это связано с особенностью обработки шаблонов. Как быть? Вот так:

Всё бы ничего, но строка «48798 2 S+ 0:00.00 grep ttyv» нам не нужна. Используем -v

Некрасивая конструкция? Потрюкачим немного:

Также не забываем про | (ИЛИ)

ну и тоже самое, иначе:

Ну и если об использовании регулярок в grep’e помнят многие, то об использовании POSIX классов как-то забывают, а это тоже иногда удобно.

Отберём строки с заглавными символами:

Плохо видно что нашли? Подсветим:
утилита поиска строк grep что это такое. Смотреть фото утилита поиска строк grep что это такое. Смотреть картинку утилита поиска строк grep что это такое. Картинка про утилита поиска строк grep что это такое. Фото утилита поиска строк grep что это такое

Ну и ещё пару трюков для затравки.
Первый скорее академичный. За лет 15 ни разу его не использовал:
Нужно из нашего тестового файла выбрать строки содержащие six или seven или eight:
Пока всё просто:

А теперь только те строки в которых six или seven или eight встречаются несколько раз. Эта фишка именуется Backreferences

Ну и второй трюк, куда более полезный. Необходимо вывести строки в которых 504 с обеих сторон ограничено табуляцией.
Ох как тут не хватает поддержки PCRE…
Использование POSIX-классов не спасает:

На помощь приходит конструкция [CTRL+V][TAB]:

Что ещё не сказал? Разумеется, grep умеет искать в файлах/каталогах и, разумеется, рекурсивно. Найдём в исходниках код, где разрешается использование Intel’ом сторонних SFP-шек. Как пишется allow_unsupported_sfp или unsupported_allow_sfp не помню. Ну да и ладно — это проблемы grep’а:

Надеюсь не утомил. И это была только вершина айсберга grep. Приятного Вам чтения, а мне аппетита на шашлыках!
Ну и удачного Вам grep’a!

Источник

990x.top

Простой компьютерный блог для души)

Утилита поиска строк (GREP) в Windows грузит процессор — что делать?

утилита поиска строк grep что это такое. Смотреть фото утилита поиска строк grep что это такое. Смотреть картинку утилита поиска строк grep что это такое. Картинка про утилита поиска строк grep что это такое. Фото утилита поиска строк grep что это такое

Приветствую друзья. Данный материал расскажет о неизвестном процессе в диспетчере задач, который может нагружать процессор, использовать много оперативной памяти.

Утилита поиска строк (GREP) в Windows грузит процессор — что делать?

Анализируя интернет, выяснил: данный процесс принадлежит программе Flock, которая предположительно является вирусом.

утилита поиска строк grep что это такое. Смотреть фото утилита поиска строк grep что это такое. Смотреть картинку утилита поиска строк grep что это такое. Картинка про утилита поиска строк grep что это такое. Фото утилита поиска строк grep что это такоеМногие пользователи сообщают — процесс грузит процессор ровно на 50%.

Можно попробовать убрать из автозагрузки:

При использовании Windows 7 — зажмите кнопки Win + R > вставьте команду msconfig > активируйте вкладку Автозагрузка > снимите галочку с GREP.

Один пользователь предложил следующее решение:

утилита поиска строк grep что это такое. Смотреть фото утилита поиска строк grep что это такое. Смотреть картинку утилита поиска строк grep что это такое. Картинка про утилита поиска строк grep что это такое. Фото утилита поиска строк grep что это такоеВнимание: при удалении папки — может восстанавливаться. В таком случае, возможно именно вышеуказанный способ поможет убрать нагрузку, однако при этом неизвестная программа останется на ПК.

Можно сделать следующий вывод:

Способ удаления папки:

Дальнейшие действия

При наличии данного процесса — на компьютере могут быть вирусы. Настоятельно рекомендуется просканировать ПК на наличие рекламных модулей, опасных вирусов используя лучшие инструменты:

При отсутствии качественного антивируса советую установить бесплатную версию Каспера — Kaspersky Security Cloud Free.

Заключение

Источник

ИТ База знаний

Полезно

— Онлайн генератор устойчивых паролей

— Онлайн калькулятор подсетей

— Руководство администратора FreePBX на русском языке

— Руководство администратора Cisco UCM/CME на русском языке

— Руководство администратора по Linux/Unix

Навигация

Серверные решения

Телефония

FreePBX и Asterisk

Настройка программных телефонов

Корпоративные сети

Протоколы и стандарты

16 полезных примеров grep

Изначально разработанный для Unix-систем grep, является одной из наиболее широко используемых утилит командной строки в среде Linux.

grep расшифровывается как «глобальный поиск строк, соответствующих регулярному выражению и их вывод» (globally search for a regular expression and print matching lines). grep в основном ищет на основе указанного посредством стандартного ввода или файла шаблона, или регулярного выражения и печатает строки, соответствующие заданным критериям. Часто используется для фильтрации ненужных деталей при печати только необходимой информации из больших файлов журнала.

Это возможно благодаря совместной работе регулярных выражений и поддерживаемых grep параметров.

утилита поиска строк grep что это такое. Смотреть фото утилита поиска строк grep что это такое. Смотреть картинку утилита поиска строк grep что это такое. Картинка про утилита поиска строк grep что это такое. Фото утилита поиска строк grep что это такое

Здесь мы рассмотрим некоторые из часто используемых сисадминами или разработчиками команд grep в различных сценариях.

Синтаксис grep

Команда grep принимает шаблон и необязательные аргументы вместе со перечислять файлов, если используется без трубопровода.

1. Поиск среди нескольких файлов

утилита поиска строк grep что это такое. Смотреть фото утилита поиска строк grep что это такое. Смотреть картинку утилита поиска строк grep что это такое. Картинка про утилита поиска строк grep что это такое. Фото утилита поиска строк grep что это такое

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

2. Регистронезависимый поиск

утилита поиска строк grep что это такое. Смотреть фото утилита поиска строк grep что это такое. Смотреть картинку утилита поиска строк grep что это такое. Картинка про утилита поиска строк grep что это такое. Фото утилита поиска строк grep что это такое

3. Поиск слова

утилита поиска строк grep что это такое. Смотреть фото утилита поиска строк grep что это такое. Смотреть картинку утилита поиска строк grep что это такое. Картинка про утилита поиска строк grep что это такое. Фото утилита поиска строк grep что это такое

4. Вывод количества совпадений

утилита поиска строк grep что это такое. Смотреть фото утилита поиска строк grep что это такое. Смотреть картинку утилита поиска строк grep что это такое. Картинка про утилита поиска строк grep что это такое. Фото утилита поиска строк grep что это такое

5. Поиск в поддиректориях

утилита поиска строк grep что это такое. Смотреть фото утилита поиска строк grep что это такое. Смотреть картинку утилита поиска строк grep что это такое. Картинка про утилита поиска строк grep что это такое. Фото утилита поиска строк grep что это такое

6. Инверсивный поиск

утилита поиска строк grep что это такое. Смотреть фото утилита поиска строк grep что это такое. Смотреть картинку утилита поиска строк grep что это такое. Картинка про утилита поиска строк grep что это такое. Фото утилита поиска строк grep что это такое

7. Вывод нумерации строк

grep позволяет нумеровать совпавшие строки, что позволяет легко определить, где строка находится в файле. Чтобы получить номера строк в выходных данных. используйте параметр –n :

утилита поиска строк grep что это такое. Смотреть фото утилита поиска строк grep что это такое. Смотреть картинку утилита поиска строк grep что это такое. Картинка про утилита поиска строк grep что это такое. Фото утилита поиска строк grep что это такое

8. Ограничение вывода

утилита поиска строк grep что это такое. Смотреть фото утилита поиска строк grep что это такое. Смотреть картинку утилита поиска строк grep что это такое. Картинка про утилита поиска строк grep что это такое. Фото утилита поиска строк grep что это такое

9. Вывод дополнительных строк

Часто нам нужны не только строки, которые совпали с шаблоном, но некоторые строки выше или ниже их для понимания контекста.

утилита поиска строк grep что это такое. Смотреть фото утилита поиска строк grep что это такое. Смотреть картинку утилита поиска строк grep что это такое. Картинка про утилита поиска строк grep что это такое. Фото утилита поиска строк grep что это такое

10. Вывод списка файлов

утилита поиска строк grep что это такое. Смотреть фото утилита поиска строк grep что это такое. Смотреть картинку утилита поиска строк grep что это такое. Картинка про утилита поиска строк grep что это такое. Фото утилита поиска строк grep что это такое

11. Вывод абсолютных совпадений

утилита поиска строк grep что это такое. Смотреть фото утилита поиска строк grep что это такое. Смотреть картинку утилита поиска строк grep что это такое. Картинка про утилита поиска строк grep что это такое. Фото утилита поиска строк grep что это такое

12. Поиск совпадения в начале строки

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

утилита поиска строк grep что это такое. Смотреть фото утилита поиска строк grep что это такое. Смотреть картинку утилита поиска строк grep что это такое. Картинка про утилита поиска строк grep что это такое. Фото утилита поиска строк grep что это такое

Обратите внимание, как с помощью символ каретки ^ изменяет выходные данные. Символ каретки указывает grep выводить результат, только если искомое слово находится в начале строки. Если в шаблоне есть пробелы, то можно заключить весь образец в кавычки.

13. Поиск совпадения в конце строки

Другим распространенным регулярным выражением является поиск шаблона в конце строки.

утилита поиска строк grep что это такое. Смотреть фото утилита поиска строк grep что это такое. Смотреть картинку утилита поиска строк grep что это такое. Картинка про утилита поиска строк grep что это такое. Фото утилита поиска строк grep что это такое

14. Использования файла шаблонов

В нашем примере мы создали файла шаблона с названием pattern.txt со следующим содержимым:

утилита поиска строк grep что это такое. Смотреть фото утилита поиска строк grep что это такое. Смотреть картинку утилита поиска строк grep что это такое. Картинка про утилита поиска строк grep что это такое. Фото утилита поиска строк grep что это такое

утилита поиска строк grep что это такое. Смотреть фото утилита поиска строк grep что это такое. Смотреть картинку утилита поиска строк grep что это такое. Картинка про утилита поиска строк grep что это такое. Фото утилита поиска строк grep что это такое

15. Поиск по нескольким шаблонам

утилита поиска строк grep что это такое. Смотреть фото утилита поиска строк grep что это такое. Смотреть картинку утилита поиска строк grep что это такое. Картинка про утилита поиска строк grep что это такое. Фото утилита поиска строк grep что это такое

16. Указание расширенных регулярных выражений

утилита поиска строк grep что это такое. Смотреть фото утилита поиска строк grep что это такое. Смотреть картинку утилита поиска строк grep что это такое. Картинка про утилита поиска строк grep что это такое. Фото утилита поиска строк grep что это такое

Заключение

Онлайн курс по Linux

Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps

Источник

🐧 16 опций grep, которые помогут вам в реальном мире

утилита поиска строк grep что это такое. Смотреть фото утилита поиска строк grep что это такое. Смотреть картинку утилита поиска строк grep что это такое. Картинка про утилита поиска строк grep что это такое. Фото утилита поиска строк grep что это такое

Мощь регулярных выражений в сочетании с поддерживаемыми опциями в grep делает это возможным.

Синтаксис команды

Grep ожидает шаблон и необязательные аргументы вместе со списком файлов, если они используются без конвейера.

1. Поиск в нескольких файлах

Grep позволяет искать заданный шаблон не только в одном, но и в нескольких файлах с помощью масок (например, знака «*»):

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

2. Поиск без учета регистра

G rep предлагает искать паттерн, не глядя на его регистр. Используйте флаг -i, чтобы утилита игнорировала регистр:

3. Поиск всего слова

Зачастую вместо частичного совпадения необходимо полное соответствие поисковому слову. Это можно сделать, используя флаг -w:

4. Проверка количества совпадений

Иногда вместо фактического совпадения со строкой нам необходимо количество успешных совпадений, найденных grep. Этот результат можно получить, используя опцию -c:

5. Поиск в подкаталогах

Часто требуется выполнить поиск файлов не только в текущем рабочем каталоге, но и в подкаталогах. G rep позволяет это сделать с помощью флага -r:

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

6. Инверсивный поиск

Если вы хотите найти что-то несоответствующее заданному шаблону, grep и это умеет при помощи флага -v:

Можно сравнить вывод команды grep по одному и тому же шаблону и файлу с флагом -v или без него. С флагом печатается каждая строка, которая не соответствует шаблону.

7. Печать номеров строк

Если хотите напечатать номера найденных строк, чтобы узнать их позицию в файле, используйте опцию -n:

8. Ограниченный вывод

Обратите внимание, как использование флага влияет на вывод для того же набора условий:

9. Отображение дополнительных строк

Иногда необходимо вывести не только строки по некоторому шаблону, но и дополнительные строки выше или ниже найденных для понимания контекста. Можно напечатать строку выше, ниже или оба варианта, используя флаги -A, -B или -C со значением num (количество дополнительных строк, которые будут напечатаны). Это применимо ко всем совпадениям, которые grep находит в указанном файле или в списке файлов.

10. Список имен файлов

Чтобы напечатать только имя файлов, в которых найден шаблон, используйте флаг -l:

11. Точный вывод строк

Если необходимо напечатать строки, которые точно соответствуют заданному шаблону, а не какой-то его части, применяйте в команде ключ -x:

В приведенном ниже примере file.txt содержится слово «support», а строки без точного совпадения игнорируются.

12. Совпадение по началу строки

Используя регулярные выражения, можно найти начало строки:

Обратите внимание, как использование символа «^» изменяет выходные данные. Знак «^» указывает начало строки, т.е. ^It соответствует любой строке, начинающейся со слова It. Заключение в кавычки может помочь, когда шаблон содержит пробелы и т. д.

13. Совпадение по концу строки

Эта полезная регулярка способна помочь найти по шаблону конец строки:

Обратите внимание, как меняется вывод, когда мы сопоставляем символ «.» и когда используем «$», чтобы сообщить утилите о строках, заканчивающихся на «.» (без тех, которые могут содержать символ посередине).

14. Файл шаблонов

Если у вас есть некий список часто используемых шаблонов, укажите его в файле и используйте флаг -f. Файл должен содержать по одному шаблону на строку.

В примере мы создали файл шаблонов pattern.txt с таким содержанием:

Чтобы это использовать, применяйте ключ -f:

15. Указание нескольких шаблонов

G rep позволяет указать несколько шаблонов с помощью -e:

16. Расширенные выражения

G rep поддерживает расширенные регулярные выражения или ERE (похожие на egrep) с использованием флага -E.

Использование ERE имеет преимущество, когда вы хотите рассматривать мета-символы как есть и не хотите заменять их строками. Использование -E с grep эквивалентно команде egrep.

Вот одно из применений ERE, когда необходимо вывести строки, например, из больших конфигурационных файлов. Здесь использовался флаг -v, чтобы не печатать строки, соответствующие шаблону ^(#|$).

Заключение

Приведенные выше примеры – лишь верхушка айсберга. G rep поддерживает целый ряд опций и может оказаться полезным инструментом в руках специалиста, который способен эффективно его использовать. Мы можем не только взять на вооружение приведенные выше примеры, но и комбинировать их, чтобы получить требуемый результат в различных условиях.

Источник

grep в Windows? Легко!


Многим любителям шела нравится чудная команда grep.
К сожалению, windows нативно не имеет такой команды, по этому некоторые ставят себе наборы различных консольных утилит в *nix стиле, включая grep.

Мне, как любителю посидеть в консоли Windows очень мешало отсутствие грепа, по этому мои скрипты под Win всегда были не так хороши, как могли бы быть. Но мои скрипты должны работать на любой (ну, или почти на любой) Windows, так как же быть?

К счастью, в Windows XP (и выше) появились две команды, которые призваны исправить положение — это find и более мощный вариант — findstr.

первая простая, и имеет явный недостаток — искомый текст надо заключать в кавычки. Не знаю, как вам — но мне очень не удобно печатать кавычки каждый раз 🙂

findstr же этого не требует, и к тому же позволяет искать используя мощь регулярных выражений.

Таким образом, теперь надо помнить, что мы не в bash\zsh\etc, а в Win, и набирать findstr вместо grep.

Ну а на своей машине я сделал следующее:
echo findstr %1 %2 %3 %4 %5 > %systemroot%\grep.cmd
теперь можно не задумываясь грепать вывод:

C:\WINDOWS>findstr LISTEN
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING
TCP 0.0.0.0:445 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1963 0.0.0.0:0 LISTENING
TCP 10.198.17.58:139 0.0.0.0:0 LISTENING
TCP 127.0.0.1:1025 0.0.0.0:0 LISTENING
TCP 127.0.0.1:9050 0.0.0.0:0 LISTENING
TCP 127.0.0.1:9051 0.0.0.0:0 LISTENING
TCP 192.168.56.1:139 0.0.0.0:0 LISTENING

ifconfig:

echo IF «%1″==»-a» (ipconfig /all) ELSE (ipconfig %1) > %systemroot%\ifconfig.cmd

echo %1 /?> %systemroot%\man.cmd

UPD перенёс в «Системное администрирование»

Источник

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

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