= bubbalog =Дневникът на моето стадо

Търсене на низ (string) във файлове с grep на FreeBSD

Sunday 27.12.2009 02:33 EET · Публикувано от в = FreeBSD =, = Linux =

Скоро се натъкнах на още един начин за търсене на стринг във всички файлове от зададена директория. Няма как да не сте чували и вие за grep,  че с нея може да се търси рекурсивно… Претърсва цялата зададена директория, нейните поддиректории  като сканира всички файлове и накрая предоставя резултата в няколко формата.

Ето един пример. Нека потърсим думичката “hosting” във всеки файл намиращ се в портовете:

grep -r “hosting” /usr/ports/

По този начин grep ще сканира всички файлове в /usr/ports и във всички нейни поддиректории като всеки резултат ще съдържа името на файла и копирана линията в която се съдържа търсената думичка, в случая “hosting”.

Ако не ви е нужно да знаете точното съдържание на реда задайте -lr за да изведете просто списък с файловете които съдържат търсения стринг:

grep -lr “hosting” /usr/ports/

Също така grep подържа и  regular expressions, което много помага при търсенето:

grep -lr “mod.*” .

Тази команда ще изведе списък на всички файлове зпочващи с “mod”.

Може да се използва за търсене на няколко стринга едновременно:

grep -r “drupal\|joomla\|wordpress” .

И разбира се, grep поддържа “file name wildcards”. Това означава, че може да го накарате да търси стринг във файлове само с определено име. В конкретния случай по-долу той ще търси само във файлове чиито имена започват с “log”:

grep -lr “mod.*” ./log*

Изненадващо в зависимост от версията, не всеки grep подържа рекурсивно търсене, като някои използват и различни параметри. За повече информация винаги може да се обърнете към

man grep

Според информацията (но непроверено от мен) всичко това би трябвало да работи безпроблемно и на Linux, но ако някой знае нещо конкретно може да го сподели.

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

Писането на кирилица е задължително!
Коментари, които не са на кирилица ще бъдат изтрити без предупреждение.
Всеки коментари съдържащи 1 или повече линка, ще бъдат публикувани след одобрение.