ПАрни подскажите чем логи пропарсить? логи в виде лог.тхт лог2.тхт нужно повыдерать нужные мне линки.. отчетов дохрена вручную оч долго
какая структура файлов, которые тебе нужно спарсить, и какого вида линки, которые тебе нужно выдернуть?
mazaxaka, хоть бы показал, что там выдирать нужно. perl или php(его скрипты так же можно в консоли запускать, как и perl). Если чисто линки, то PHP: #/usr/bin/perl use strict; ... my (@urls); @urls=$file_data =~ /<a.*href=\"(.*?)\".*>/g; ------ Пока писал, уже выложил.
тебе нужно все эти строки вытащить? Code: URL: http://e.mail.ru/cgi-bin/login Login: betman1312 Pwd: bujhmtkmwjd URL: http://passport.yandex.ru login: vasia_1975 passwd: 345rty7 URL: http://wg200.odnoklassniki.ru st.email: vasia_1975 st.password: 123qwe4 Program: Opera Url/Host: https://login.yahoo.com/config/login Login: radha1990 Password: login
в папке logs лежать файлы ot4et.txt , ot4et2.txt и так порядка 20к файлов также в папке logs есть еще папки new и old и тд в них тоже отчеты их тоже нужно пропарсит. вот в етом и остановился в перле как пропарсить все отчеты в папке и в подпаках
В названиях файлов ведь только цифры меняются ot4et.txt , ot4et2.txt ..., можно ведь занести в цикл ot4et[переменная с цифрой]... и пропарсить все файлы? перл не знаю, поэтому может я чего-то недопонимаю
PHP: <?php set_time_limit(0); function file_parsing($dir) { global $result; $file_list = ''; if ($dh = opendir($dir)) { $x = 1; while (($file = readdir($dh)) !== false) { if ($file !== '.' AND $file !== '..') { $current_file = "{$dir}\\{$file}"; if (is_file($current_file)) { $file = file_get_contents($current_file); preg_match_all("#URL:\s.*\nLogin:\s.*\nPwd:\s.*|URL:\s.*\nlogin:\s.*\npasswd:\s.*|URL:\s.*\nst.email:\s.*\nst.password:\s.*|Url/Host:\s.*\nLogin:\s.*\nPassword:\s.*#", $file, $match); $result .= "Log $x:\n".implode('', $match[0])."\n\n"; $x++; } } } } } $path = "C:\bla-bla-bla\bla-bla\logs";//Абсолютный путь до папки file_parsing($path); $fp = fopen("result.txt", "wb");//Спарсенные даные будут лежать в result.txt fwrite($fp, trim($result)); fclose($fp); ?> Регулярное выражение составил по идиотски, так как не пойму, что конкретно нужно парсить.
чтот не работает.. файл резулт создает но он пустой. по линку например вк. нужно вытянуть все пароли к вк. я просто показал пример в каком виде хранятся логи
не дружу с переносами строк поетому так для куска регулярка Code: /tut.by(.*)login:(.*)password:(.*)sid/s my $acc = $2;$3
PHP: <?php set_time_limit(0); function file_parsing($dir) { global $result; $file_list = ''; if ($dh = opendir($dir)) { $x = 1; while (($file = readdir($dh)) !== false) { if ($file !== '.' AND $file !== '..') { $current_file = "{$dir}\\{$file}"; if (is_file($current_file)) { $file = file_get_contents($current_file); preg_match_all("#URL:.*tut.by.*\s(login:.*\spassword:.*)#", $file, $match); $result .= "tut.by log $x:\n".implode('', $match[1])."\n\n"; $x++; } } } } } $path = "C:\WebServers\home\localhost\www\logs";//Абсолютный путь до папки file_parsing($path); $fp = fopen("result.txt", "wb");//Спарсенные даные будут лежать в result.txt fwrite($fp, trim($result)); fclose($fp); ?> Вот так у меня все парсит.