Torna indietro   Hardware Upgrade Forum > Software > Linux, Unix, OS alternativi

La Formula E può correre su un tracciato vero? Reportage da Misano con Jaguar TCS Racing
La Formula E può correre su un tracciato vero? Reportage da Misano con Jaguar TCS Racing
Abbiamo visto ancora una volta la Formula E da vicino, ospiti di Jaguar TCS Racing. In questa occasione però curve e rettilinei erano quelli di un circuito permanente, molto diverso dagli stretti passaggi delle strade di Roma
Lenovo LEGION e LOQ: due notebook diversi, stessa anima gaming
Lenovo LEGION e LOQ: due notebook diversi, stessa anima gaming
Lenovo ha puntato forte sul gaming negli ultimi anni e lo testimoniano i marchi LEGION e LOQ, il primo per gli amanti delle massime prestazioni e dell'assenza di compromessi, il secondo per chi desidera soluzioni dal buon rapporto tra prestazioni e prezzo. Abbiamo provato due esponenti dell'offerta, così da capire l'effettiva differenza prestazionale.
Nothing Ear e Ear (a): gli auricolari per tutti i gusti! La ''doppia'' recensione
Nothing Ear e Ear (a): gli auricolari per tutti i gusti! La ''doppia'' recensione
Nothing propone sul mercato non uno ma ben due auricolari nuovi: Ear di terza generazione e Ear (a) ossia un nuovo modello a basso costo pronto a ritagliarsi una fetta di mercato. Entrambi rimangono fedeli al marchio per il design ancora trasparente ma fanno un balzo in avanti notevole per qualità e soppressione del rumore.  
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 24-01-2007, 20:55   #1
sgdfgsgfsgs
 
Messaggi: n/a
[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 suidio!

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

Ultima modifica di sgdfgsgfsgs : 24-01-2007 alle 21:17.
  Rispondi citando il messaggio o parte di esso
Old 24-01-2007, 21:58   #2
megamitch
Senior Member
 
L'Avatar di megamitch
 
Iscritto dal: May 2004
Messaggi: 12020
Ciao, se ho capito bene le tue esigenze...

é uno script banalissimo (non sono così skillato sul bash sripting) ma dovrebbe rispondere alle tue esigenze.

Allora, diciamo che file1 è l'originale, file2 un file di appoggio e file3 l'output.

Io farei ad esempio così

Codice:
count=9009

cat file1 | awk '{gsub(/ /,";"); print}' > file2

for item in `cat file2` ; do echo $item | awk -F "=" '{print "mysql -u root -pgood -D robin_www --exec \"update dartagnan set user_id ='\''"'$count'"'\'' where username ="$3}'  ; let "count=$count+1";  done > file3
Note: count lo inizializzi con il primo numero che devi usare. Il file di appoggio mi serve per cambiare in carattere " " in ";" che riesco a maneggiare meglio con echo.

Ci saranno sicuramente soluzioni più eleganti....come dicevo, sono alle prime armi

Ciao, spero di esserti stato di aiuto
__________________
"Qualunque cosa abbia il potere di farti ridere ancora trent'anni più tardi non è uno spreco di tempo. Credo che le cose di quella categoria si avvicinino molto all'immortalità"
megamitch è offline   Rispondi citando il messaggio o parte di esso
Old 24-01-2007, 22:02   #3
kingv
Senior Member
 
L'Avatar di kingv
 
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5689
mioscript.pl nomefile >filemodificato

Codice:
#!/usr/bin/perl

$n = 1;

while (<>)
{
        $line = $_;
        $line =~ /user_id ='(\w*)'/;
        $user_id = $1;
        if ($user_id =~ /\d+/)
        {
                $n = $user_id;
        }
        else
        {
                $line =~ s/user_id ='[a-zA-Z]+'/user_id ='$n'/;
        }
        print $line;
        $n++;
}
di sicuro si puo' fare di meglio ma mi sembra funzioni.
kingv è offline   Rispondi citando il messaggio o parte di esso
Old 24-01-2007, 22:05   #4
megamitch
Senior Member
 
L'Avatar di megamitch
 
Iscritto dal: May 2004
Messaggi: 12020
Lo ammetto, devo studiare le regexp....
__________________
"Qualunque cosa abbia il potere di farti ridere ancora trent'anni più tardi non è uno spreco di tempo. Credo che le cose di quella categoria si avvicinino molto all'immortalità"
megamitch è offline   Rispondi citando il messaggio o parte di esso
Old 24-01-2007, 23:34   #5
sgdfgsgfsgs
 
Messaggi: n/a
grazie a tutti!

problema risolto! :*
  Rispondi citando il messaggio o parte di esso
 Rispondi


La Formula E può correre su un tracciato vero? Reportage da Misano con Jaguar TCS Racing La Formula E può correre su un tracciato ...
Lenovo LEGION e LOQ: due notebook diversi, stessa anima gaming Lenovo LEGION e LOQ: due notebook diversi, stess...
Nothing Ear e Ear (a): gli auricolari per tutti i gusti! La ''doppia'' recensione Nothing Ear e Ear (a): gli auricolari per tutti ...
Sony FE 16-25mm F2.8 G: meno zoom, più luce Sony FE 16-25mm F2.8 G: meno zoom, più lu...
Motorola edge 50 Pro: design e display al top, meno il prezzo! Recensione Motorola edge 50 Pro: design e display al top, m...
HiSolution amplia i propri servizi e pun...
F1 24 introdurrà migliorie al mod...
Arriva Omnissa, che prenderà in c...
Turista americano torna dall'Europa e si...
Larian al lavoro su due nuovi giochi, cr...
Microsoft Office LTSC 2024 disponibile i...
Fallout 4 è il gioco più v...
Razer Kishi Ultra: ecco il controller pe...
Il Dimensity 6300 di MediaTek porta il 5...
Google combina i team Android, Chrome e ...
Axiante vuole indagare come le imprese i...
Italia quinto mercato europeo per i vide...
Apple celebra la Giornata della Terra co...
La funzionalità 'AI Explorer' di ...
ASUS ROG Ally: la versione più potente c...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 03:34.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Served by www3v