这段时间在搞大数方面的研究,大量的数据哪里去找呢呵呵,网上的一些自动生成工具也 不怎么符合自己需求,于是乎自己就编写了一个,能产生大量的随机数据的脚本,还能对配置文件进行配置哦,虽然有些地方做不够灵活,但基本需求也OK啦
下面把源代码贴出来分享一下哈
有两个文件
config.h
HOSTNAME='10.33.28.231'
PORT='3306'
USERNAME="drmtest"
PASSWD="test"
DBNAME="test"
TABLENAME="testdb" #this value has two place used
TABLE_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.html
RECORD_NUM=100
CHAR_MAX_LEN=20
TABLE_ATTR=(int varchar varchar)
CLO_NUM=3
CUR_ATTR=0
TABLENAME="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" }
' $1
awk '
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