Удаление из лога apache строк, которые не содержат признака

Статус
В этой теме нельзя размещать новые ответы.

latteo

Эффективное использование PHP, MySQL
Регистрация
27 Фев 2008
Сообщения
1.603
Реакции
1.566
Среда выполнения Npp, замена по регулярке на пустое значение
Если в строке есть слово "/products" то строку оставляем.

Пример лога:
Код:
66.249.69.234 - - [04/Dec/2014:08:59:05 +0100] "GET /de/kontakt/ HTTP/1.1" 200 3358 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
123.125.71.117 - - [04/Dec/2014:09:11:52 +0100] "GET / HTTP/1.1" 200 11251 "-" "Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)"
66.249.69.234 - - [04/Dec/2014:09:13:16 +0100] "GET /products/ HTTP/1.1" 200 1815 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"

PS: лог я уже обработал, но вот регуляркой решить не удалось и теперь интересно в образовательных целях :)
 
а мож лучше выборку в новый файл сделать, не ?

cat /var/log/httpd/access.log | grep -v "/products" > product.txt
 
а мож лучше выборку в новый файл сделать, не ?

cat /var/log/httpd/access.log | grep -v "/products" > product.txt

Как вариант, вполне жизнеспособно, но ограничено средой применения. У меня от сервера только ftp и анализирую я под виндой.
Потому php файлик набросал :)
И как я уже писал интересно узнать как это сделать регуляркой.
 
.+GET /(?!products).+\r?\n
И не забыть снять галку с "и новые строки".
screen1.jpeg


Хотя данную задачу удобнее решать с помощью закладок.
screen2.jpeg
После идем в меню Поиск => Закладки => Удалить все строки без закладки.
 
.+GET /(?!products).+\r?\n
Благодарю, я пытался достигнуть результата regexp`ом и вариациями на тему:
Код:
^.*(?!products).*$
но он захватывает все строки, а оказалось надо всего-то более четко задать конец строки :)
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху