這段時間在搞大數方面的研究,大量的資料哪裡去找呢呵呵,網上的一些自動產生工具也 不怎麼符合自己需求,於是乎自己就編寫了一個,能產生大量的隨機資料的指令碼,還能對設定檔進行配置哦,雖然有些地方做不夠靈活,但基本需求也OK啦
下面把原始碼貼出來分享一下哈
有兩個檔案
config.h
HOSTNAME='10.33.28.231'PORT='3306'USERNAME="drmtest"PASSWD="test"DBNAME="test"TABLENAME="testdb" #this value has two place usedTABLE_ATTR=(int varchar varchar); # the type of column for TABLENAME ;#mysql_sql="select *from ${TABLENAME}"mysql_sql="${1}" ;mysql -h${HOSTNAME} -p${PORT} -u${USERNAME} -p${PASSWD} ${DBNAME} -e "${mysql_sql}" ;
inservalue.sh
視頻: 超感人年度神剪:《野青春》 http://v.youku.com/v_show/id_XNDkxODA0MTE2.html視頻: 我們必須找到除了愛情之外,能夠讓我們用雙腳,堅強站立的東西。http://v.youku.com/v_show/id_XNDA2ODE4NTgw.htmlRECORD_NUM=100CHAR_MAX_LEN=20TABLE_ATTR=(int varchar varchar)CLO_NUM=3CUR_ATTR=0TABLENAME="testdb"function search(){ local var; var=${!#} local i; for i in $* do if [ $var = $i ] ;then return 3 fi done}awk 'BEGIN{ record_num=int("'$RECORD_NUM'") ; max_len = int("'$CHAR_MAX_LEN'"); print "awk begin" ; srand(); info="a b c d e f g h i j k l m n o p q r s t u v w x y z"; split(info,arr,FS); # for(i=0;i<26;i++)# printf("i=%d,%s ",i,arr[i]); for(i=0;i<record_num;i++){ printf("%d ",1024*rand())>"'$1'"; w = max_len*rand(); w = int(w)+1; str=""; for(j=0;j<w;j++ ){ k=100*rand()%26 ; k = int(k); str=str""arr[k+1]; } printf("%s ", str)>"'$1'" ; w = 10*rand(); w = int(w)+1; str=""; for(j=0;j<w;j++ ){ k=100*rand()%26 ; k = int(k); str=str""arr[k+1]; } printf("%s ", str)>"'$1'" ; print "">"'$1'" }}{ print "in awk";}END{ print "awk end" } ' $1awk 'BEGIN{ #sql = "sh config " #system(var);}{ sql = "sh config " sql_value="(" ; for(i=1;i<=3;i++){ if($i == int($i)) sql_value=sql_value""$i; else{ sql_value=sql_value""",""""'\''" sql_value=sql_value""$i sql_value=sql_value"""'\''" } } sql_value=sql_value""")" ; print sql_value ; real_sql =" \"insert into """"'${TABLENAME}' (id,name,passwd) values " real_sql = real_sql""sql_value"""\"" ; print real_sql ; sql = sql""real_sql ; system(sql);}END{ }' $1
在終端上運行如下:
$ sh inservalue.sh tmp