# !/bin/bash

############中文说明######################
#本程序的一些提示需要中文支持,如系统没有安装中文包,请先安装:yum -y groupinstall chinese-support ############使用说明######################
#.运行本程序之前,有几个注意事项,数据库的表需要实现创建好,字段要和源文件的字段一一对应
#.本程序需要一些参数,示例:./script.sh /tmp/test.txt table_name ,
#.上述示例中:script.sh是程序文件名,/tmp/test.txt是源文件,table_name是数据库的表名,","是源文件中的字段分隔符
#.此程序算是version_1.0版本,功能较简单,如果有下版本,将加入源文件的切割功能,正在测试文件切割的性能
#.此外,还需要一些参数需要在程序中指定,比如mysql的账户和密码,还有具体数据库实例
########################################## MysqlUser=root #指定mysql的账户
MysqlPass= #指定mysql的密码
sourcefile=$
targetfile=$
db=mytest #指定数据库实例 if [ -z "$3" ];then
delimit=","
else
delimit=$
fi MysqlCmd="mysql -u$MysqlUser -p$MysqlPass $db"
#LoaddataCmd="LOAD DATA LOW_PRIORITY LOCAL INFILE '$sourcefile' IGNORE INTO TABLE $targetfile CHARACTER SET utf8 FIELDS TERMINATED BY '$delimit';" [ -z "$sourcefile" ]&&{
echo '没有指定源文件...'
exit
} [ -z "$targetfile" ]&&{
echo '没有指定数据库的表...'
exit
} if [ ! -f "$sourcefile" ]; then
echo "源文件不存在,请检查!程序结束..."
sleep
exit
fi echo -n "运行此程序前,请确认源文件为[${sourcefile}],目标数据库表为[${targetfile}],分隔符为[${delimit}](未指定则默认为\",\"): "
read -n -p "(y/n)? " anw
if [ "$anw" = y ];then
echo ""
echo "程序继续,正在处理,请等待..."
elif [ "$anw" = n ];then
echo ""
echo "程序已结束..."
exit
else
echo ""
echo "选择错误,程序将结束,请重新运行程序,并输入(y/n)"
exit
fi echo "正在统计文件大小!请等待..."
sleep ;
echo "..." {
file_size=`du -sh $sourcefile |awk '{print$1}'`
}&&{
echo "[${sourcefile}]文件大小为:$file_size"
} sleep ;
echo "..."
echo "正在导入..." seconds_1=$(date +%s)
$MysqlCmd -e "LOAD DATA LOW_PRIORITY LOCAL INFILE '$sourcefile' IGNORE INTO TABLE $targetfile CHARACTER SET utf8 FIELDS TERMINATED BY '$delimit';"
seconds_2=$(date +%s) if [ $? -eq ]; then
echo "导入完成!"
echo "耗时: `expr $seconds_2 - $seconds_1`秒"
exit
else
echo "导入未完成,请检查错误!"
exit
fi

最新文章

  1. Hibernate选择题总结
  2. android 断点下载---XUtils
  3. 20145225《Java程序设计》 实验三 "敏捷开发与XP实践"
  4. Java的switch用法
  5. hadoop MapReduce 笔记
  6. ODI 11g & 12c中缓慢变化维(SCD)的处理机制
  7. Centos文本方式安装情况下lvm分区的创建
  8. CentOS 6.6 yum源完全配置
  9. VC中窗口ID,句柄,指针三者相互转换函数【转】
  10. vijos P1352 最大获利(最小割)
  11. 关于ionic开发的一些总结(项目启动设置,app图标名称更改)
  12. LeetCode Javascript实现 283. Move Zeroes 349. Intersection of Two Arrays 237. Delete Node in a Linked List
  13. Mountaineers Gym - 102021M (LCA+MST)
  14. document.documentElement.clientHeight和document.body.clientHeight区别
  15. Docker:Dockerfile命令详解
  16. 指向函数的指针 ------ 函数指针(function pointer)
  17. 爬虫万金油,一鹅在手,抓遍全球:goose 简介!
  18. BAT及各大互联网公司2014前端笔试面试题--Html,Css篇(昨天有个群友表示写的简单了点,然后我无情的把他的抄了一遍)
  19. nginx 代理ssh
  20. 【python】安装bcoding

热门文章

  1. js学习笔记31----工厂方式
  2. Rattle:数据挖掘的界面化操作
  3. python读写word文档
  4. 巧用JS中的join方法操作字符串
  5. JS中setInterval、setTimeout不能传递带参数的函数的解决方法
  6. MySQL(五)之DDL(数据定义语言)与六大约束
  7. ssm框架搭建并演示获取json字符串
  8. 如何在vs2008安装64位编译器
  9. 如何用MathType编辑集合运算符号
  10. angularJs 页面{{xxx}}使用三目运算符