find and replace

4 posts / 0 new
Last post
jely
find and replace

Am 2 coloane intr un csv
4,5366793
4,4352336
4,4352100
4,5367311
4,5367340
4,5370681
4,4352101
4,5370755
ceva de genu asta ideea e ca vreau sa creeez un script sql sa il rulez pe o baza de date.
update products
set price = ' '
where oid= ' '
Prima valoare e pretul si a doua e oid ul cum as putea genera cu un script astfel incat sa imi treaca el automat valorile acolo.

Marius Sirbu
Re: find and replace

da-mi te rog mai multe detalii (eventual pe

) si-ti fac eu scriptul
Marius

Marius
-----------------------------------------
Linux registered user # 419668

cosmin
cosmin's picture
Re: find and replace

awk 'BEGIN { FS = "," } length($0) > 0 {print "UPDATE products SET price = " $1 " WHERE oid = " $2 ";" }' nume_fisier_csv

Şi acum explicaţiile: :-)
- FS vine de la Field Separator. Noi vrem ca oricare două câmpuri de pe fiecare linie să fie separate prin virgulă. Primul câmp se va regăsi în variabila $1, al doilea - în variabila $2, şi aşa mai departe. $0 se referă la întreaga linie;
- length ($0) > 0 spune că pentru liniile cu lungime mai mare decât 0, se execută instrucţiunea dintre acolade.

Ca să obţii un fişier în locul afişării pe ecran, poţi redirecta ieşirea:
comanda_de_mai_sus > fisier.sql

[url=http://counter.li.org/]Linux registered user #368449[/url]

admin
admin's picture
Re: find and replace

la urma in loc de print, ar putea sa foloseasca `mysql -e "update bla bla..."`