2013-12-22 24 views
1

如何在mysql中直接數據接入.. 聽到的是代碼我想通過awk的外殼直接在mysql中插入數據

 

    awk ' 
    BEGIN { 
    FS=";"; 
    } 
    { 
    if(NR>1) 
    { 
     Max = $1 
     Min = $2 
    Com = $3 
     if(Max>Com) 
     { 
     NMax = Max 
     if(Max>Com && NMaxMin) 
     { 
     NMin = Min 
     if(Min1)     
     printf "%9.2f;%9.2f;%9.2f;%9.2f;%9.2f;\n", $1,$2,$3,NMax,NMin 
    }' data.txt 

#mysql -uroot -proot wcdata和表名,data_com

在此先感謝....

+0

請注意,您缺少大括號'}' –

+0

什麼是'Min1'和'NMaxMin'? –

+1

如果你想使用命令'mysql'插入數據,一個可能的方法是在'awk'中用'system()'函數在awk中調用它.. –

回答

2

這裏有一個建議:與其在printf語句,你可以嘗試:

istr="INSERT INTO data_com" 
cstr="(Column001, Column002, Column003, Column004, Column005)" 
cmd="echo "istr" "cstr" VALUES (" 
cmd=sprintf("%s'%.2f','%.2f','%.2f','%.2f','%.2f'\)", cmd,a1[i],a2[i],a3[i],a,b) 
cmd= cmd " | mysql -uroot -proot wcdata" 
system(cmd) 
+2

*先安全地打印東西,頭部'來查看它是否看起來不錯,如果是,那麼在這個'|中輸入真正的命令mysql' – janos

+1

@janos是的,我同意......我只是覺得我應該留給OP來決定.. –

+1

抱歉,但它是行不通的。錯誤..警告:轉義序列'\)'視爲普通')' sh:語法錯誤:「(」unexpecteds i changed(''%s','%2f'... –