PDA

Просмотр полной версии : Просьба написать парсер


banana
16.03.2009, 22:56
Просьба написать парсер, чтобы строки вида
x:::email:::xx.xx.xxxx:::xx:xx:::pass
превращал в
email:pass

x - произвольные символы, зараннее спасибо

Kaimi
16.03.2009, 23:10
Перл

use warnings;

open A, '<', 'log.txt' || die $!;
open B, '>>', 'result.txt' || die $!;

while(<A>) {
my(undef, $email, undef, undef, $pass) = split /:::/, $_;
print B $email.":".$pass;
}

close A;
close B;

banana
16.03.2009, 23:23
о_О никогда не сталкивался с языком Perl, подскажите как запустить это

ZagZag
17.03.2009, 00:13
1. Качаешь EmEditor (http://depositfiles.com/files/0vin4n9ua)
2. Открываешь в нем файл.
3. Ctrl + H
4. Вкл. регулярные выражения
Найти: .*?:::(.*?):::.*?:::.*?::(.*?)
Заменить: \1:\2
5. Заменить все

budden
17.03.2009, 10:14
1. Качаешь EmEditor (http://depositfiles.com/files/0vin4n9ua)
2. Открываешь в нем файл.
3. Ctrl + H
4. Вкл. регулярные выражения
Найти: .*?:::(.*?):::.*?:::.*?::(.*?)
Заменить: \1:\2
5. Заменить все
Сам так делаю, но если база большая (>50мб), то емедитор будет долго и задумчиво делать, поэтому в таких случаях перл лучше и удобнее.

banana
17.03.2009, 13:00
Спасибо большое, все получилось!

А теперь еще 1 вопрос, как избавить текст от одинаковых строк? Пробовал Text Duplicate Killer'ом но он коверкает текст что буквы разлетаются в разные места

zannussi
17.03.2009, 15:19
пользуюсь этой прогой http://slil.ru/27247775
сразу же сортирует по лексикографическому возрастанию

banana
17.03.2009, 17:10
Понял почему у меня TDK коверкал текст из-за твоего сообщения, посмотрев твою прогу. Как раз лексико-грамматическое сортирование мне не нужно. У мну база мыл с пассами в ввиде Email:Pass так он мне все мыла и пароли в ряд отсортировал, так не катит, как же сделать нормально?

zannussi
18.03.2009, 07:55
а разница какая? я не понимаю. Он удалит повторяющиеся строки, и сортирует. И ничего он не испортит. Или скинь скрин, как он коверкует майл:пасс.

banana
23.03.2009, 19:28
а разница какая? я не понимаю. Он удалит повторяющиеся строки, и сортирует. И ничего он не испортит. Или скинь скрин, как он коверкует майл:пасс.
Как это какая разница. Смотри к примеру даже 2 акка:

lol@mail.ru:asdas546
и
atec@mail.ru:654654

Он превращает в =>
.
:
:
@
@
654654
asdas546
atec
lol
mail
mail
ru
ru

Теперь понятно?

Sharky
23.03.2009, 19:38
bash

sort file.txt -u >>sorted.txt

сортирует по алфавиту и удаляет повторы

banana
23.03.2009, 21:12
bash

sort file.txt -u >>sorted.txt

сортирует по алфавиту и удаляет повторы

Об этом знаю, но у мну вынь

Sharky
24.03.2009, 00:43
Об этом знаю, но у мну вынь
любой шелл тебе в помощь