Подскажите софт что бы отпарсить большой sql дамп

Discussion in 'PHP' started by GroM88, 8 Dec 2010.

  1. GroM88

    GroM88 Elder - Старейшина

    Joined:
    24 Oct 2007
    Messages:
    463
    Likes Received:
    62
    Reputations:
    26
    Очень нуждаюсь в вашей помощи)
    См. последний пост в топике...
    Заранее благодарен!
     
    #1 GroM88, 8 Dec 2010
    Last edited: 4 Mar 2013
  2. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    GroM88 http://php.net http://python.org http://www.perl.org/ - выбирайте любой софт из этих, например
     
    _________________________
    1 person likes this.
  3. GroM88

    GroM88 Elder - Старейшина

    Joined:
    24 Oct 2007
    Messages:
    463
    Likes Received:
    62
    Reputations:
    26
    ога) perl)
    только ты наверно не так меня понял : )
     
  4. Adio

    Adio Elder - Старейшина

    Joined:
    23 May 2005
    Messages:
    1,646
    Likes Received:
    147
    Reputations:
    18
    Размер базы ?
     
  5. GroM88

    GroM88 Elder - Старейшина

    Joined:
    24 Oct 2007
    Messages:
    463
    Likes Received:
    62
    Reputations:
    26
    374 мб) но впринцепе ее можно разбить на куски)
    там только 1/4 бд нужной инфы ) все остальное уг
     
  6. modestus

    modestus New Member

    Joined:
    12 Oct 2010
    Messages:
    33
    Likes Received:
    4
    Reputations:
    5
    кусок дампа в ПМ, и пока я буду его ковырять - скачать и установить http://python.org/ftp/python/2.7.1/python-2.7.1.msi
     
  7. GroM88

    GroM88 Elder - Старейшина

    Joined:
    24 Oct 2007
    Messages:
    463
    Likes Received:
    62
    Reputations:
    26
    Вообщем разбил файл тоталкоммандером...
    Вырезал нужную мне таблицу с инфой.
    Вопрос... чем теперь отпарсить файл с таблицей что бы выдрать только инфу из колонок 'email' 'password' и сохранить эту инфу в txt в виде email:pass
    hepl народ ;)
     
  8. drim

    drim Member

    Joined:
    27 Aug 2009
    Messages:
    347
    Likes Received:
    33
    Reputations:
    4
    Code:
    grep 'INSERT INTO \`users\`' } yourdump.sql | perl -ne 's/[(?:INSERT INTO \`users\` VALUES\()|(?:\);)]//; print;' | cut -d, -f1 -f4
    где fN - номер нужного поля. сама регулярка не тестилась, но идея должна быть понятна
     
  9. GroM88

    GroM88 Elder - Старейшина

    Joined:
    24 Oct 2007
    Messages:
    463
    Likes Received:
    62
    Reputations:
    26
    Вопрос решен) Большое спасибо modestus, написал скрипт. Скрипт сделал все что нужно : )
     
  10. mazaxaka

    mazaxaka Elder - Старейшина

    Joined:
    15 Feb 2008
    Messages:
    268
    Likes Received:
    35
    Reputations:
    0
    скрипт не покажиш? какже интересует нужно выдрать инфу с бд
     
  11. Adio

    Adio Elder - Старейшина

    Joined:
    23 May 2005
    Messages:
    1,646
    Likes Received:
    147
    Reputations:
    18
    350мб.... многа ! :) датинг ? :)
     
  12. modestus

    modestus New Member

    Joined:
    12 Oct 2010
    Messages:
    33
    Likes Received:
    4
    Reputations:
    5
    Мужики, кому нужно чего-то распарсить - скидывайте мне кусок дампа в ПМ и качайте Python (http://python.org/download/). Не откажу никому.
     
  13. Eviler

    Eviler Banned

    Joined:
    25 Aug 2009
    Messages:
    11
    Likes Received:
    0
    Reputations:
    -5
    а не проще ли просто дать sql запрос на вывод нужной тебе инфы?
     
  14. mazaxaka

    mazaxaka Elder - Старейшина

    Joined:
    15 Feb 2008
    Messages:
    268
    Likes Received:
    35
    Reputations:
    0
    я в sql не силен если поможеш, с меня +
    есть база вида
    нунжо вытащить. логин, мыло , мд5 хеш и соль
    и вот такая
    вытащить теже данные
     
  15. modestus

    modestus New Member

    Joined:
    12 Oct 2010
    Messages:
    33
    Likes Received:
    4
    Reputations:
    5
    Нужны имена полей, скорее всего запрос будет по типу:
    Code:
    SELECT login, mail, hash, salt FROM users LIMIT 100
    
    LIMIT - ограничивает вывод до 100 строк, это на время теста
    P.S. Проверил только что на SQLite - работает без проблем :)
     
    #15 modestus, 9 Dec 2010
    Last edited: 9 Dec 2010
    1 person likes this.
  16. GroM88

    GroM88 Elder - Старейшина

    Joined:
    24 Oct 2007
    Messages:
    463
    Likes Received:
    62
    Reputations:
    26
    шоп : D
     
    1 person likes this.
  17. GroM88

    GroM88 Elder - Старейшина

    Joined:
    24 Oct 2007
    Messages:
    463
    Likes Received:
    62
    Reputations:
    26
    Ребята, подниму старую тему!
    Сообственно есть новый дамп 80 мб такого вида:
    Code:
    30,'Kristin','Noveske','(541) 474-5547','','[email protected]','','Internet Mainstreet',1096495791,1096495936,'oldstuff.com',0,1,1,1,1,1,1,1,0,0,1,1,1,0,1,1,0,0,'','','b70d00896083163e23cb2255d81a57fe',0,'NONE',0,'ACTIVE',30,0,1,'2008-10-13 12:31:00','00030AAA','  Comped founding membership, to bring more traffic antique dealer\r\nVF',0,0,1,0,'NONE','TEXT',\N,0,1,0,1,1,1,0,0,0,1,1,0,0,0,1,1,1,'44ba1da0',1331591540,'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)',0,1,'oldstuff.com_OLA',53510),
    (31,'Janet','Graves','(541) 659-9884',\N,'[email protected]','','',1096498393,1096498625,'nobondo',0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,'Good service! I give an A++','Good service! I give an A++','dc146ceb9e57d4299a448f0d5ae1c9e0',0,'NONE',0,'ACTIVE',31,0,1,'2009-07-13 16:06:05','00031AAA','',0,0,1,0,'NONE','TEXT',\N,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,'',0,'',0,1,\N,\N),
    Опять же нужно отпарсить в такой вид:
    email:hash

    Есть старый парсер от modestus'a написанный на питоне

    Код парсера:

    PHP:
    #!/usr/bin/env python
    #-*- encoding:utf-8-*-

    import re
    print u"Введите имя файла:"
    filename raw_input()
    with open(filename) as data:
        
    with open("parsed_{0}".format(filename), "a") as parsed:
            for 
    line in data:
                
    line_data re.findall(r'''\,\'(.*?\@.*?)\'\,\'(.*?)\'\,'''line)
                if 
    line_data:
                    try:
                        
    parsed.write("{0}:{1}\n".format(line_data[0][0].strip(), line_data[0][1].strip()))
                    
    except IndexError:
                        print 
    u"Ошибка во время парсинга : '{0}'".format(line.decode("UTF-8").encode("cp866""replace"))
    print 
    u"Обработка закончена"
    raw_input()

    Старый дамп выглядел вот так:

    Code:
    (27,'[email protected]','3fdf96ec9b8dad46859ec61d61d1eb9a','David','Scudder','1230 American Blvd','','West Chester','Pa','19380','US','610-918-7038','OA‹¬/?B+%%®4uQ','6847','03','2007','David','Scudder','1230 American Blvd','','West Chester','Pa','19380','US','610-918-7038','10/03/2006 03:52:31 PM - Initial Account Registration','1','2006-10-03 15:52:31',NULL,'2006-10-03 15:54:22',NULL,'0','0.00','American Express',NULL,NULL),
     (24,'[email protected]','0aa80caa79014c08f471820f766b9dad','Hope','Richards',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'10/03/2006 01:50:15 PM - Initial Account Registration','1','2006-10-03 13:50:15',NULL,'2009-02-06 15:33:28',NULL,'0','0.00',NULL,NULL,NULL),
     (23,'[email protected]','45225ea1be970c37c4ebd4b443cd267e','Terri','Simon',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'10/03/2006 01:46:25 PM - Initial Account Registration','1','2006-10-03 13:46:25',NULL,'2006-10-03 13:46:25',NULL,'0','0.00',NULL,NULL,NULL),
     (25,'[email protected]','deefb3476d4f66a217022bb81bf3ddac','Kanupriya','Sharma','415  W 23rd st  Apt 14E','','New York','New York','10011','US','646-207-1218','?Nou?soo?ofuoG2M¶?LoU”E§6S','994','04','2009','Kanupriya','Sharma','415  W 23rd st  Apt 14E','','New York','New York','10011','US','646-207-1218','10/03/2006 02:19:45 PM - Initial Account Registration','1','2006-10-03 14:19:45',NULL,'2006-10-03 14:27:49',NULL,'0','0.00','Visa',NULL,NULL),
     (18,'[email protected]','061fba5bdfc076bb7362616668de87c8','Kathleen','Bush',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'10/02/2006 09:04:36 PM - Initial Account Registration','1','2006-10-02 21:04:36',NULL,'2006-10-02 21:04:36',NULL,'0','0.00',NULL,NULL,NULL),
     (19,'[email protected]','8c8ae5bd44969f333081fbc208f363ac','Kim','Kuznia','5300 Zenith Avenue South','','Minneapolis','Mn','55410','US','612.920.8529','A?Dy\\n~0u$k¶?LoU”E§6S','655','02','2007','Kim','Kuznia','5300 Zenith Avenue South','','Minneapolis','Mn','55410','US','612.920.8529','10/02/2006 10:59:20 PM - Initial Account Registration','1','2006-10-02 22:59:20',NULL,'2006-10-02 23:01:13',NULL,'0','0.00','Visa',NULL,NULL),
     (20,'[email protected]','f0071b2fa486e35b24262fc3a0fd6a27','Brad','Theissen','2202 S Figueroa St #754','','Los Angeles','Ca','90007','US','8187266025','[C\nL?u?¬†°\"}NuaH¶?LoU”E§6S','818','05','2008','Brad','Theissen','2202 S Figueroa St #754','','Los Angeles','Ca','90007','US','8187266025','10/03/2006 01:03:03 AM - Initial Account Registration','1','2006-10-03 01:03:03',NULL,'2006-10-03 01:12:56',NULL,'0','0.00','Master Card',NULL,NULL),
    Ребята, можно как то переделать его что бы он отпарсил мыло:пасс нового дампа... ?

    Очень нуждаюсь в вашей помощи!
    Заранее благодарен!
     
    #17 GroM88, 4 Mar 2013
    Last edited: 4 Mar 2013
  18. taha

    taha Elder - Старейшина

    Joined:
    20 Aug 2006
    Messages:
    399
    Likes Received:
    330
    Reputations:
    251
    Есть универсальный классный софт GNU linux
    вариант 1
    вариант 2
    еще миллион вариантов
    результат
    PS: спс ребят... благодаря вам я оттачиваю свои навыки работы со строчками в linux каждый день..
     
    1 person likes this.
Loading...