HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > БЕЗОПАСНОСТЬ И УЯЗВИМОСТИ > Песочница
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 05.08.2015, 17:21
dondy
Постоянный
Регистрация: 05.06.2015
Сообщений: 560
Провел на форуме:
135528

Репутация: 5


По умолчанию

хочу определенные совпадения искать по лог файлам, их очень много и у всех разные имена

расширение .txt

все логи писались в строку

как открыть все файлы с расширением txt, провести по ним поиск на совпадения в строках и вывести все строки с совпадениями ?

мой вариант работает только с одним файлом

PHP код:
[COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"][/COLOR][/COLOR
 
Ответить с цитированием

  #2  
Старый 05.08.2015, 17:55
binarymaster
Флудер
Регистрация: 11.12.2010
Сообщений: 4,688
Провел на форуме:
997379

Репутация: 125


По умолчанию

Цитата:
Сообщение от dondy  

как открыть все файлы с расширением txt, провести по ним поиск на совпадения в строках и вывести все строки с совпадениями ?
мой вариант работает только с одним файлом
PHP код:
[COLOR="#000000"][COLOR="#0000BB"]$searchthis[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#DD0000"]"user"[/COLOR][COLOR="#007700"];
[/
COLOR][COLOR="#0000BB"]$matches[/COLOR][COLOR="#007700"]= array();
[/
COLOR][COLOR="#0000BB"]$dir[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#DD0000"]'logs/'[/COLOR][COLOR="#007700"];
foreach([/
COLOR][COLOR="#0000BB"]glob[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$dir[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#DD0000"]'*.txt'[/COLOR][COLOR="#007700"]) as[/COLOR][COLOR="#0000BB"]$filename[/COLOR][COLOR="#007700"]) {
[/
COLOR][COLOR="#0000BB"]$handle[/COLOR][COLOR="#007700"]= @[/COLOR][COLOR="#0000BB"]fopen[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$filename[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]"r"[/COLOR][COLOR="#007700"]);
if ([/COLOR][COLOR="#0000BB"]$handle[/COLOR][COLOR="#007700"])
{
while (![/COLOR][COLOR="#0000BB"]feof[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$handle[/COLOR][COLOR="#007700"]))
{
[/
COLOR][COLOR="#0000BB"]$buffer[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]fgets[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$handle[/COLOR][COLOR="#007700"]);
if([/COLOR][COLOR="#0000BB"]strpos[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$buffer[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$searchthis[/COLOR][COLOR="#007700"]) !==[/COLOR][COLOR="#0000BB"]FALSE[/COLOR][COLOR="#007700"])[/COLOR][COLOR="#0000BB"]$matches[/COLOR][COLOR="#007700"][] =[/COLOR][COLOR="#0000BB"]$filename[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#DD0000"]': '[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]$buffer[/COLOR][COLOR="#007700"];
}
[/
COLOR][COLOR="#0000BB"]fclose[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$handle[/COLOR][COLOR="#007700"]);
}
}
[/
COLOR][COLOR="#0000BB"]print_r[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$matches[/COLOR][COLOR="#007700"]);[/COLOR][/COLOR
 
Ответить с цитированием

  #3  
Старый 05.08.2015, 18:01
dondy
Постоянный
Регистрация: 05.06.2015
Сообщений: 560
Провел на форуме:
135528

Репутация: 5


По умолчанию

binarymaster, Большое Спасибо !
 
Ответить с цитированием

  #4  
Старый 05.08.2015, 19:44
Sagittarius
Новичок
Регистрация: 29.07.2015
Сообщений: 18
Провел на форуме:
4497

Репутация: 0
По умолчанию

Извиняюсь за быдлокодинг, за минуту накидал. На питоне как-то так.

Код:
import os
search = "phrase"
for fl in os.listdir("./"):
    if fl[-4:] == ".txt":
        for line in open(fl,"r"):
            if search in line: 
                print(line)
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.