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

Тема в разделе "Регулярные выражения", создана пользователем latteo, 21 янв 2015.

Статус темы:
Закрыта.
Модераторы: xpert13
  1. latteo

    latteo Эффективное использование PHP, MySQL

    Moderator
    Регистр.:
    28 фев 2008
    Сообщения:
    1.522
    Симпатии:
    1.376
    Среда выполнения 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: лог я уже обработал, но вот регуляркой решить не удалось и теперь интересно в образовательных целях :)
     
  2. mefish

    mefish Support

    Moderator
    • Супермодератор
    Регистр.:
    30 авг 2007
    Сообщения:
    858
    Симпатии:
    621
    а мож лучше выборку в новый файл сделать, не ?

    cat /var/log/httpd/access.log | grep -v "/products" > product.txt
     
    unpunk и latteo нравится это.
  3. latteo

    latteo Эффективное использование PHP, MySQL

    Moderator
    Регистр.:
    28 фев 2008
    Сообщения:
    1.522
    Симпатии:
    1.376
    Как вариант, вполне жизнеспособно, но ограничено средой применения. У меня от сервера только ftp и анализирую я под виндой.
    Потому php файлик набросал :)
    И как я уже писал интересно узнать как это сделать регуляркой.
     
  4. lag

    lag

    Регистр.:
    13 окт 2014
    Сообщения:
    205
    Симпатии:
    262
    .+GET /(?!products).+\r?\n
    И не забыть снять галку с "и новые строки".
    screen1.jpeg


    Хотя данную задачу удобнее решать с помощью закладок.
    screen2.jpeg
    После идем в меню Поиск => Закладки => Удалить все строки без закладки.
     
    latteo нравится это.
  5. latteo

    latteo Эффективное использование PHP, MySQL

    Moderator
    Регистр.:
    28 фев 2008
    Сообщения:
    1.522
    Симпатии:
    1.376
    Благодарю, я пытался достигнуть результата regexp`ом и вариациями на тему:
    Код:
    ^.*(?!products).*$
    но он захватывает все строки, а оказалось надо всего-то более четко задать конец строки :)
     
Статус темы:
Закрыта.