PDA

Просмотр полной версии : ищу парсер


o3,14um
10.12.2009, 20:22
есть БД примерно такого вида:

12|7474747|mail@mail.ru|mypass|name|2009

нужна софтина - парсер, который позволил бы мне убрать все ненужные поля, до разделителя, например осатвить только

mail@mail.ru|mypass

Есть ли готовые решения? Писать ой как не хочется.....

Epic wave
10.12.2009, 20:35
что мешает выборку из бд по полям сделать?

o3,14um
10.12.2009, 20:40
у меня не sql-дамп. Nо бишь импортировать в БД я не смогу без предварительной обработки.

ещё раз повторюсь. База (список если угодно) имеет такой вид:

12|7474747|mail@mail.ru|mypass|name|2009
13|7474547|mail@mail.ru|mypasds|name|2009
14|723447|msil@mail.ru|mysdfss|namfe|2009
15|7473747|madl@mail.ru|mypdfass|nadme|2009

а нужно привести к такому:

mail@mail.ru|mypass
mail@mail.ru|mypasds
msil@mail.ru|mysdfss
madl@mail.ru|mypdfass

(Dm)
10.12.2009, 20:49
Что-то типа такого
#!/usr/bin/php
<?php

$data = file('data.txt');
for ($i = 0; $i < count($data); $i++) {
$p = explode("|", trim($data[$i]));
echo $p[2]."|".$p[3]."\r\n";
}
?>

o3,14um
11.12.2009, 02:27
спасибо, я уже накидал на делфи

brainy
11.12.2009, 02:36
тру-кодеры блин... это все можно сделать в обычном экселе

shellz[21h]
11.12.2009, 03:31
Одна команда :)
]$ sed -r 's#(.*)\|(.*)\|(.*)\|(.*)\|(.*)\|(.*)#\3\|\4#g' db.txt > out.txt

krypt3r
11.12.2009, 08:14
Моя короче :)
$ cut -d\| -f3,4 1.txt > out.txt

shellz[21h]
11.12.2009, 17:18
спасибо, что на помнил... все пытлася вспомнить эту команду :)
Вот еще вариант
]$ awk -F\| '{print $3,$4}' db.txt > out.txt :)
Unix рулит :)