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中的更多相关文章

  1. shell编程系列13--文本处理三剑客之sed利用sed追加文件内容

    shell编程系列13--文本处理三剑客之sed利用sed追加文件内容 追加用法总结: .a 在匹配行后面追加 .i 在匹配行前面追加 .r 将文件内容追加到匹配行后面 .w 将匹配行写入指定文件 追 ...

  2. shell编程系列12--文本处理三剑客之sed利用sed修改文件内容

    shell编程系列12--文本处理三剑客之sed利用sed修改文件内容 修改命令对照表 编辑命令 1s/old/new/ 替换第1行内容old为new ,10s/old/new/ 替换第1行到10行的 ...

  3. shell编程系列11--文本处理三剑客之sed利用sed删除文本中的内容

    shell编程系列11--文本处理三剑客之sed利用sed删除文本中的内容 删除命令对照表 命令 含义 1d 删除第一行内容 ,10d 删除1行到10行的内容 ,+5d 删除10行到16行的内容 /p ...

  4. shell编程系列10--文本处理三剑客之sed利用sed查询特定内容

    shell编程系列10--文本处理三剑客之sed利用sed查询特定内容 利用sed查找文件内容: pattern种类: .8p .,10p .,+5p ./regexp/p .,/regexp/p . ...

  5. Shell 脚本操作数据库实战

    安装mariadb 数据库  (默认没有密码,直接mysql即可进入数据库管理控制台) yum install mariadb mariadb-server mariadb-libs -y syste ...

  6. shell编程系列25--shell操作数据库实战之备份MySQL数据,并通过FTP将其传输到远端主机

    shell编程系列25--shell操作数据库实战之备份MySQL数据,并通过FTP将其传输到远端主机 备份mysql中的库或者表 mysqldump 常用参数详解: -u 用户名 -p 密码 -h ...

  7. shell编程系列23--shell操作数据库实战之mysql命令参数详解

    shell编程系列23--shell操作数据库实战之mysql命令参数详解 mysql命令参数详解 -u 用户名 -p 用户密码 -h 服务器ip地址 -D 连接的数据库 -N 不输出列信息 -B 使 ...

  8. shell编程系列22--shell操作数据库实战之shell脚本与MySQL数据库交互(增删改查)

    shell编程系列22--shell操作数据库实战之shell脚本与MySQL数据库交互(增删改查) Shell脚本与MySQL数据库交互(增删改查) # 环境准备:安装mariadb 数据库 [ro ...

  9. shell编程系列26--大型脚本工具开发实战

    shell编程系列26--大型脚本工具开发实战 大型脚本工具开发实战 拆分脚本功能,抽象函数 .function get_all_group 返回进程组列表字符串 .function get_all_ ...

随机推荐

  1. 1219 Vue项目创建及基础

    目录 vue项目 1. 项目创建 cmd创建 可视化创建 2. 项目启动 vue重新构建依赖 pycharm管理vue项目 3. 项目目录介绍 index.html index.js App.vue ...

  2. destoon模板存放调取规则

    一.模板存放及调用规则      模板存放于系统 template 目录,template 目录下的一个目录例如 template/default/ 即为一套模板 模板文件以 .htm 为扩展名,可直 ...

  3. LINQ查询表达式(2) - 在 C# 中编写 LINQ 查询

    在 C# 中编写 LINQ 查询 C# 中编写 LINQ 查询的三种方式: 使用查询语法. 使用方法语法. 组合使用查询语法和方法语法. // 查询语法 IEnumerable<int> ...

  4. 配置jdk和环境变量

    1.官网下载jdk1.8,默认安装即可 2.JAVE_HOME:jdk安装目录 path:C:;%JAVA_HOME%\bin;  C:;%JAVA_HONE%\jre\bin;(当dos界面输入命令 ...

  5. 微信小程序引入Vant组件库

    前期准备 Vant Weapp组件库:https://youzan.github.io/vant-weapp/#/intro 1.先在微信开发者工具中打开项目的终端: 然后初始化一个package.j ...

  6. 关闭win10 任务栏窗口预览的步骤:

    win10虽好,但是总有不利于使用的反人类设计,好在可以设置,这也是比较好了的, 作为开发人员,经常会开好几个窗口,但是win10的预览很不好,设计的就是娱乐用途一般,因此必须是把他关了 一下步骤亲自 ...

  7. Mysql分布式集群

    一.准备 集群: 192.168.1.191  管理节点192.168.1.192  管理节点192.168.1.193  数据节点和API节点 192.168.1.194  数据节点和API节点 安 ...

  8. html5 打开摄像头

    <video onloadedmetadata="" id="inputVideo" style="width: 1080px;height: ...

  9. javascript之大文件分段上传、断点续传

    这里只写后端的代码,基本的思想就是,前端将文件分片,然后每次访问上传接口的时候,向后端传入参数:当前为第几块文件,和分片总数 下面直接贴代码吧,一些难懂的我大部分都加上注释了: 上传文件实体类: 看得 ...

  10. HIVE 乱码以及 HUE SQL 语句兼容性的记录(遇到应该会一直更新)

    最近在 HUE 里面查询有中文字段相关的东西被报错警告... (1366, Incorrect string value: \\xE4\\xBA\\xAC\\xE4\\xB8\\x9C... for ...