Учитывая файл журнала, я обычно делаю что-то вроде этого:
grep 'marker-1234' filter_log
Какая разница в использовании «» или «» или ничего в шаблоне?
Приведенная выше команда grep выдаст много тысяч строк; что я хочу В этих строках обычно есть одна порция данных, которую я ищу. Иногда я использую awk для распечатки полей, которые мне нужны. В этом случае формат журнала изменяется, я не могу полагаться исключительно на позицию, не говоря уже о том, что фактические зарегистрированные данные могут сдвинуть позицию вперед.
Чтобы сделать это понятным, допустим, что в строке журнала содержался IP-адрес, и это было все, что мне было нужно, так что позже я могу передать его для сортировки и уникальности и получить некоторые подсчеты.
Примером может быть:
2010-04-08 some logged data, indetermineate chars - [marker-1234] (123.123.123.123) from: foo@bar.example.com to bar@foo.example.com [stat-xyz9876]
Первая команда grep даст мне много тысяч строк, подобных приведенным выше, оттуда я хочу передать это чему-то, возможно, sed
, который может извлечь шаблон изнутри и напечатать только шаблон.
Для этого примера достаточно использовать IP-адрес. Я старался. sed
не в состоянии понять [0-9] {1,3}. как шаблон? Я должен был [0-9] [0-9] [0-9]. что дало странные результаты, пока весь шаблон не создан.
Это не относится к IP-адресу, шаблон изменится, но я могу использовать его как шаблон обучения.
Спасибо вам всем.