【shell实战之】呈现数据_实战演练_读CSV文件_出sql文件

呈现数据_实战演练_读CSV文件_出sql文件

代码

#!/bin/bash

# 无论是将文件读入脚本,还是将数据从脚本输出到文件,都会用到文件重定向,这是一种很
# 常见的操作。本节中的示例脚本两种功能皆有。它会读取 CSV 格式的数据文件,输出 SQL INSERT
# 语句,并将数据插入数据库。
# shell 脚本使用命令行参数指定待读取的 CSV 文件。CSV 格式用于从电子表格中导出数据,
# 你可以把这些数据库数据放入电子表格,将电子表格保存为 CSV 格式,读取文件,然后创建
# INSERT 语句将数据插入 MySQL 数据库。

# read file and create INSERT statements for MySQL
outfile='members.sql'
IFS=','
while read lname fname address city state zip
do
  cat >> $outfile << EOF
  INSERT INTO members (lname,fname,address,city,state,zip) VALUES
  ('$lname', '$fname', '$address', '$city', '$state', '$zip');
EOF
done < ${1}

#
# 脚本中出现了 3 处重定向操作。
# while 循环使用read 语句从数据文件中读取文本。
# done 语句中出现的重定向符号:done < ${1} ,当运行脚本时,$1 代表第一个命令行参数,指明了待读取数据的文件。
# read 语句使用 IFS 字符解析读入的文本,这里将 IFS 指定为逗号。

# 脚本中另外两处重定向操作出现在同一条语句中:
# cat >> $outfile << EOF
# 这条语句包含一个输出追加重定向(双大于号)和一个输入追加重定向(双小于号)。
# 输出重定向将 cat 命令的输出追加到由$outfile 变量指定的文件中。
# cat 命令的输入不再取自标准输入,而是被重定向到脚本内部的数据。

# EOF 符号标记了文件中的数据起止:
# INSERT INTO members (lname,fname,address,city,state,zip) VALUES
# ('$lname', '$fname', '$address', '$city', '$state', '$zip');
# 上述文本生成了一个标准的 SQL INSERT 语句。注意,其中的数据由变量来替换,变量中的内容则由 read 语句存入。

# while 循环基本上一次读取一行数据,然后将这些值放入 INSERT 语句模板中,最后将结果输出到文件中。

输入的CSV文件

在这里插入图片描述

输出的sql文件

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值