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

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.  
Sony FE 16-25mm F2.8 G: meno zoom, più luce
Sony FE 16-25mm F2.8 G: meno zoom, più luce
Il nuovo Sony FE 16-25mm F2.8G si aggiunge all'analogo 24-50mm per offrire una coppia di zoom compatti ma di apertura F2.8 costante, ideali per corpi macchina altrettanto compatti (vedi A7c ) e fotografia di viaggio.
Motorola edge 50 Pro: design e display al top, meno il prezzo! Recensione
Motorola edge 50 Pro: design e display al top, meno il prezzo! Recensione
Motorola è decisa sulla sua strada: questo nuovo edge 50 Pro non guarda a specifiche stellari ma considera di più l’aspetto estetico. E si propone elegantemente con linee sinuose e un sistema operativo veloce. Peccato per un prezzo un po' fuori mercato.
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


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...
Ecovacs Goat G1-800, mettiamo alla prova il robot tagliaerba facile ed efficace Ecovacs Goat G1-800, mettiamo alla prova il robo...
ASUS ProArt 1, un PC completo ad altissime prestazioni per creator e non solo ASUS ProArt 1, un PC completo ad altissime prest...
SYNLAB sotto attacco: sospesa l'attivit&...
BYD Seal U, primo contatto. Specifiche, ...
Intel ha completato l'assemblaggio dello...
Cina: aumenta del 40% la produzione di c...
GPT-4 quasi come un oculista: in un test...
Prezzi super per gli Apple Watch SE di s...
L'intelligenza artificiale ruba posti di...
The Witcher 3: disponibile su Steam il R...
Xiaomi 15: trapelano importanti specific...
Fallout 5? Meglio aspettare la seconda s...
Motorola Edge 50 Pro è ora disponibile s...
La tecnologia digitale sta trasformando ...
ASUSTOR presenta ADM 4.3 con nuove funzi...
S8 MaxV Ultra e Qrevo Pro: i nuovi aspir...
Goldene: creati, per la prima volta, fog...
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: 05:19.


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