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

Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Il primo Sony con retroilluminazione True RGB alla prova del banco di misura e dei contenuti: luminanza enorme, colori accurati in HDR e un antiriflesso molto efficace. I limiti sono due sole HDMI 2.1 e il blooming fuori asse
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: 13623
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: 5707
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: 13623
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


Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
Sei alla ricerca di un buon gruppo di co...
Blizzard annuncia un nuovo StarCraft: la...
Ecobonus al 65%: il governo valuta il ri...
Biscotti fatti con bottiglie di plastica...
SIHOO B100 a 161€ e B100 Pro a 209€: sed...
ClickFix dilaga: un finto captcha e un c...
HP Envy 6520e a 63€: stampante multifunz...
Diablo diventa una serie animata Netflix...
iPhone Duo porterà Apple al 25% d...
TSMC brucia le tappe: la produzione dei ...
Lexar ARES, SSD da 1TB a 156,74€: PCIe G...
Un'altra novità in arrivo da Samsung: ec...
Bottiglie di plastica trasformate in cas...
ECOVACS T90 OMNI a 439€: ottimo prezzo p...
BYD ha ordinato altre 10 navi da traspor...
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: 10:19.


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