• ↓
  • ↑
  • ⇑
 
Записи пользователя: tom_redl (список заголовков)
21:51 

О греп и регулярках

tom_redl
Shit happens
Пока я не знал о регулярных выражениях я приходил в ужас от того что приходилось писать кострукции типа
grep 192 logfile | grep -v 89 | grep office или
grep 168.115 log | grep 168.117
По счастью один умный человек сказал что я дурак.

Регулярные выражения (англ. regular expressions, жарг. регэкспы или регексы) — современная система поиска текстовых фрагментов в электронных документах, основанная на специальной системе записи образцов для поиска. (выдержка из википедии)
Собственно синтаксис регулярок несложен и есть в той же википедии.

Основные конструкции -
* Ноль или более
+ Одно или более
? Ноль или один раз
| Используется в качестве модификатора "или"
[] В квадртных скобках задаются символьные классы ( например [a-cf-h] будет означать все буквы от a до с и от f до h, с цифрами тоже самое.

Следующие символы позволяют спозиционировать регулярное выражение относительно элементов текста: начала и конца строки, границ слова.
$ Конец строки
\b Граница слова
\B Не граница слова

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


Например поиск все адресов выданных бугалтерии
grep '168.10.1[17-25]' logfile
Или поиск всех менеджеров в логфайле сквида, которые смотрят порнуху.
grep '168.12.2[10-15].*\\bxuk.ru\\b' /var/log/squid/access.log ( \b - экранируется как символ границы слова, иначе греп воспримет его буквально)

Кстати, если очень хочется извращений, можно использовать однострочный перл скрипт
например:
perl -e 'while (<>) { if (/директор \w+ козел/) { print; }}' text выдаст все строки где между словом "директор" и "козел" будет еще одно слово.
наш директор большой козел - подходит
директор сказал менеджеру, что он козел - не подходит

03:38 

tom_redl
Shit happens
Раз уж я нелестно отозвался о предыдущей статье, я всетаки напишу сюда.
Итак вы домохозяйка и вы с какого-то перепугу решили поставить линукс.

1 Найдите себе мальчика что-то в этом понимающего и затащите его в постель к своему многострадального компьютеру.
2 Если размер вашей груди ваша привлекательность недостаточна для пункта один - займитесь собой.
3 Если вы настолько безнадежны, что пункт первый вам не подходит а второй невозможен - мужайтесь. Вам предстит ужасная умственная работа. И первым (и самым тяжелым) вашим испытанием станет понимание простой истины - "Unix never says `please.'" (надеюсь вы не настолько безнадежны что вам нужен еще и перевод.). После недельного медетирования над этой фразой вы поймете, что есть такие замечательные вещи как - google, википедия,викиучебник,posix.ru, генту вики и вы больше не будуете ебать мне мозги своими дебильными вопросами и просветление придет к вам.

ЗЫ Это только у меня strike выглядит как верхнее подчеркивание?

Linux 4 All

главная