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.
find and replace
5. June 2006 - 15:26
#1
find and replace
da-mi te rog mai multe detalii (eventual pe
) si-ti fac eu scriptul
Marius
Marius
-----------------------------------------
Linux registered user # 419668
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]
la urma in loc de print, ar putea sa foloseasca `mysql -e "update bla bla..."`