Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di stl
    Registrato dal
    Mar 2006
    Messaggi
    166

    [x esperti && urgente] script avanzato parsing testo

    salve gente!

    non mi sto a dilungare spiegando la vicenda e le urgenze, arrivo subito al dunque:

    ho un file di testo con n righe cosi formattato:

    codice:
    ........
    mysql -u root -pgood -D robin_www --exec "update dartagnan set user_id ='9009' where username =pippo'"
    mysql -u root -pgood -D robin_www --exec "update dartagnan set user_id ='9010' where username ='pluto'"
    mysql -u root -pgood -D robin_www --exec "update dartagnan set user_id ='9011' where username ='paperino"
    mysql -u root -pgood -D robin_www --exec "update dartagnan set user_id ='blablabla' where username ='minni'"
    mysql -u root -pgood -D robin_www --exec "update dartagnan set user_id ='bliblibli' where username ='topolino'"
    .......
    come potete notare, questo file è composto da n record, omogenei, dove l' unica cosa che cambia è il numero id (numerico e crescente) e l'username.

    il problema nasce dal fatto che ad un certo punto gli id non sono + campi numerici e crescenti, benzi parole alla rinfusa!

    io vorrei uno script che mi sostituisca, quando il campo degli id fa a farsi fottere (precisamente dopo il 9011), con il numero seguente!

    nel nostro esempio qindi blablabla diventera' 9012, bliblibli diventera 9013 e cosi via!

    contanto che i record sono centinaia e centinaia, farlo a mano sarebbe da

    chi mi salva la vita, il lavoro e il tunnel carpale?

  2. #2
    Gli ID prima sono in ordine?
    Se sì, potresti riscriverli tutti (e non solo quelli fatti da lettere), con una semplice iterazione.

  3. #3
    Utente di HTML.it L'avatar di stl
    Registrato dal
    Mar 2006
    Messaggi
    166
    si sono in ordine!

  4. #4
    Potresti inizializzare un contatore, poi fare un ciclo sulle righe del file (vedi questo thread: http://forum.html.it/forum/showthrea...t=leggere+riga ), e ad ogni loop sostituire con sed (o con awk, o con qualcos'altro) l'id che c'è con l'id nuovo (il valore che ha il contatore, ricordandoti poi di incrementarlo).

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.