shell编程系列24--shell操作数据库实战之利用shell脚本将文本数据导入到mysql中
shell编程系列24--shell操作数据库实战之利用shell脚本将文本数据导入到mysql中
利用shell脚本将文本数据导入到mysql中
需求1:处理文本中的数据,将文本中的数据插入到mysql中
jerry -- male
mike -- female
tracy -- male
kobe -- male
allen -- female
curry -- male
tom -- female
# 创建表结构和student一样结构的student1表
MariaDB [school]> create table student1 like student;
[root@localhost shell]# cat data.txt
jerry -- male
mike -- female
tracy -- male
kobe -- male
allen -- female
curry -- male
tom -- female
# 编写导入数据脚本
[root@localhost shell]# cat import_mysql.sh
#!/bin/bash
#
user="dbuser"
password=""
host="10.11.0.215"
mysql_conn="mysql -h"$host" -u"$user" -p"$password""
cat data.txt | while read id name birth sex
do
$mysql_conn -e "INSERT INTO school.student1 values('$id','$name','$birth','$sex')"
done
[root@localhost shell]#
[root@localhost shell]# sh import_mysql.sh
[root@localhost shell]# mysql
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is
Server version: 5.5.-MariaDB MariaDB Server
Copyright (c) , , Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> select * from school.student1;
+------+--------+------------+--------+
| s_id | s_name | s_birth | s_sex |
+------+--------+------------+--------+
| | jerry | -- | male |
| | mike | -- | female |
| | tracy | -- | male |
| | kobe | -- | male |
| | allen | -- | female |
| | curry | -- | male |
| | tom | -- | female |
+------+--------+------------+--------+
# 导入数据可以用load,有时候有一些特殊需求比如插入s_id大于1014的行,这个时候就需要使用 shell 语句进行过滤了
[root@localhost shell]# cat import_mysql.sh
#!/bin/bash
#
user="dbuser"
password=""
host="10.11.0.215"
mysql_conn="mysql -h"$host" -u"$user" -p"$password""
cat data.txt | while read id name birth sex
do
# 有插入条件
if [ $id -gt ];then
$mysql_conn -e "INSERT INTO school.student1 values('$id','$name','$birth','$sex')"
fi
done
[root@localhost shell]# sh import_mysql.sh
[root@localhost shell]# sh operate_mysql.sh school "select * from student1"
s_id s_name s_birth s_sex
curry -- male
tom -- female
需求2:
|hao|--|male
|zhang|--|male
|ouyang|--|male
|li|--|female
[root@localhost shell]# cat import_mysql-.sh
#!/bin/bash
#
user="dbuser"
password=""
host="10.11.0.215"
# IFS是系统自带的变量,分隔符 input filre saperator
IFS="|"
cat data2.txt | while read id name birth sex
do
# 注意,当使用|类似这种特殊符号时,需要将mysql命令不写成命令,否则会报错
mysql -u"$user" -p"$password" -h"$host" -e "INSERT INTO school.student2 values('$id','$name','$birth','$sex')"
done
#
# 使用冒号: 分隔也没有问题
[root@localhost shell]# cat data3.txt
:hao:--:male
:zhang:--:male
:ouyang:--:male
:li:--:female
[root@localhost shell]# sh operate_mysql.sh school "select * from student2"
+------+--------+------------+--------+
| s_id | s_name | s_birth | s_sex |
+------+--------+------------+--------+
| | hao | -- | male |
| | zhang | -- | male |
| | ouyang | -- | male |
| | li | -- | female |
+------+--------+------------+--------+
[root@localhost shell]# cat import_mysql-.sh
#!/bin/bash
#
user="dbuser"
password=""
host="10.11.0.215"
#mysql_conn="mysql -h"$host" -u"$user" -p"$password""
# IFS是系统自带的变量,分隔符 input filre saperator
IFS=":"
cat data3.txt | while read id name birth sex
do
mysql -u"$user" -p"$password" -h"$host" -e "INSERT INTO school.student2 values('$id','$name','$birth','$sex')"
done
shell编程系列24--shell操作数据库实战之利用shell脚本将文本数据导入到mysql中的更多相关文章
- shell编程系列13--文本处理三剑客之sed利用sed追加文件内容
shell编程系列13--文本处理三剑客之sed利用sed追加文件内容 追加用法总结: .a 在匹配行后面追加 .i 在匹配行前面追加 .r 将文件内容追加到匹配行后面 .w 将匹配行写入指定文件 追 ...
- shell编程系列12--文本处理三剑客之sed利用sed修改文件内容
shell编程系列12--文本处理三剑客之sed利用sed修改文件内容 修改命令对照表 编辑命令 1s/old/new/ 替换第1行内容old为new ,10s/old/new/ 替换第1行到10行的 ...
- shell编程系列11--文本处理三剑客之sed利用sed删除文本中的内容
shell编程系列11--文本处理三剑客之sed利用sed删除文本中的内容 删除命令对照表 命令 含义 1d 删除第一行内容 ,10d 删除1行到10行的内容 ,+5d 删除10行到16行的内容 /p ...
- shell编程系列10--文本处理三剑客之sed利用sed查询特定内容
shell编程系列10--文本处理三剑客之sed利用sed查询特定内容 利用sed查找文件内容: pattern种类: .8p .,10p .,+5p ./regexp/p .,/regexp/p . ...
- Shell 脚本操作数据库实战
安装mariadb 数据库 (默认没有密码,直接mysql即可进入数据库管理控制台) yum install mariadb mariadb-server mariadb-libs -y syste ...
- shell编程系列25--shell操作数据库实战之备份MySQL数据,并通过FTP将其传输到远端主机
shell编程系列25--shell操作数据库实战之备份MySQL数据,并通过FTP将其传输到远端主机 备份mysql中的库或者表 mysqldump 常用参数详解: -u 用户名 -p 密码 -h ...
- shell编程系列23--shell操作数据库实战之mysql命令参数详解
shell编程系列23--shell操作数据库实战之mysql命令参数详解 mysql命令参数详解 -u 用户名 -p 用户密码 -h 服务器ip地址 -D 连接的数据库 -N 不输出列信息 -B 使 ...
- shell编程系列22--shell操作数据库实战之shell脚本与MySQL数据库交互(增删改查)
shell编程系列22--shell操作数据库实战之shell脚本与MySQL数据库交互(增删改查) Shell脚本与MySQL数据库交互(增删改查) # 环境准备:安装mariadb 数据库 [ro ...
- shell编程系列26--大型脚本工具开发实战
shell编程系列26--大型脚本工具开发实战 大型脚本工具开发实战 拆分脚本功能,抽象函数 .function get_all_group 返回进程组列表字符串 .function get_all_ ...
随机推荐
- 如何解决redis的并发竞争问题?
这个也是线上非常常见的一个问题,就是多客户端同时并发写一个key,可能本来应该先到的数据后到了,导致数据版本错了.或者是多客户端同时获取一个key,修改值之后再写回去,只要顺序错了,数据就错了. 而且 ...
- 《逆袭团队》第七次作业:团队项目设计完善&编码
实验十一 团队作业7:团队项目设计完善&编码 内容 项目 软件工程 任课教师博客主页链接 作业链接地址 团队作业7:团队项目设计完善&编码 团队名称 逆袭团队 具体目标 (1)完善团队 ...
- 基于h5+的微信登录,hbuilder打包
1.打开app项目的manifest.json的文件,选择模块权限配置,将OAuth(登录鉴权)模块添加至已选模块中 2.选择SDK配置,在plus.oauuth·登录鉴权中,勾选□ 微信登录,配置好 ...
- pl/sql developer 中文字段显示乱码 解决办法
一.原因:因为数据库的编号格式和pl /sql developer的编码格式不统一造成的. 二.查看和修改oracle数据库字符集: select userenv('language') from d ...
- 软件测试技术之可用性测试之WhatsApp Web
Tag:可行性测试.测试流程.结果分析.案例分析 WhatsApp是一款面向智能手机的网络通讯服务,它可以通过网络传送短信.图片.音频和视频.WhatsApp在全球范围内被广泛使用,是最受欢迎的即时聊 ...
- learning java Runtime 类 获取内存及处理器核数信息
var rt = Runtime.getRuntime(); System.*)); System.*)); System.*)); System.out.println(rt.availablePr ...
- source insight parse link
source insight parse link \([a-zA-Z_]*\.[chCH]\) ([^)]*) line \([0-9][0-9]*\)
- leetcode解题报告(32):Teemo Attacking
描述 In LLP world, there is a hero called Teemo and his attacking can make his enemy Ashe be in poison ...
- (26)打鸡儿教你Vue.js
weex框架的使用 1.weex开发入门 2.weex开发环境搭建 3.掌握部分weex组件模块 4.了解一些vue基本常见语法 5.制作一个接近原生应用体验的app weex介绍 安装开发环境 We ...
- 游戏服务器与客户端交互,或者与跨服交互都有消息加密方式,为什么不明文传递,加md5校验呢
游戏服务器与客户端交互,或者与跨服交互都有消息加密方式,为什么不明文传递,加md5校验呢