MySql·使用shell远程导出数据

shell远程导出mysql数据并分割文件

-u 账号
-p 密码
-h ip地址
-P 端口号
-D 库名
–default-character-set=utf8 默认编码
-e 不进入数据库执行 sed ‘s/\t/,/g’ 将水平制表符(tab键,linux下Ctrl+v+tab)替换成逗号(,)
-F ‘,’ 指定文件数据以逗号分割查询列 ${map[$i]} 获取数组数据

#!/bin/bash/

File_Name="filename.csv"
// 定义预处理sql
SQL="select * from table_name " 

echo "开始时间:"`date +"%Y-%m-%d %H:%M:%S"` ;

// -A声明变量为关联数组(支持索引下标为字符串)
declare -A map=(["1"]="金" ["2"]="木" ["3"]="水" ["4"]="火" ["5"]="土" )

// 导出数据库文件
mysql -uroot -p123456 -h 192.168.100.100 -P 3306 -D mm 
--default-character-set=utf8 -e "${SQL}" | sed 's/\t/,/g' > $File_Name
// 删除首行标题
sed -i '1d'

 
// 判断文件是否存在
if [ -f "filename.csv" ];then
// 按类别纷分割文件导出
for i in 1 2 3 4 5 
do
	cat filename.csv | awk -F ',' '{if( $4=='"$i"' && $5==10010) print}' | sed 's/\t/,/g' > ${i}new_fenge.csv;
	// 给文件第一行加一列表头
	sed -i '1i 表头名字1,表头名字2' ${i}settlementPLUS沃助理.csv;
	// 将文件转码后到新文件 
	iconv ${i}new_fenge.csv -f utf-8 -t gb18030  -o   ${map[$i]}new_feng2.csv;

	echo "完成时间:"`date +"%Y-%m-%d %H:%M:%S"` ;
done
else
	echo "数据导出错误-文件不存"
fi	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

青鸟遇鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值