shell 脚本实现一个查询 mysql 数据库后将结果保存为 csv 和 txt 文件,可以使用 mysql 命令行工具执行 sql 查询,并将结果导出到文件中。
1. 实现思路
mysql命令执行 sql 查询后,默认输出的列使用制表符 (\t) 分隔。- 通过
--batch和--skip-column-names参数,取消了列名,并让结果更适合输出。 - 使用
sed 's/\t/,/g'将制表符替换为逗号,从而生成 csv 格式的输出。 - 对于 txt 文件输出,保持原始的制表符格式即可,不需要使用
sed进行替换。
2. shell 脚本
#!/bin/bash # mysql 配置 db_host="localhost" db_user="username" db_password="password" db_name="database" # 要执行的 sql 查询 sql_query="select * from table;" # 输出文件 csv_file="output.csv" txt_file="output.txt" # 查询并将结果保存为 csv 文件 mysql -h "$db_host" -u "$db_user" -p"$db_password" -d "$db_name" -e "$sql_query" \ --batch --skip-column-names | sed 's/\t/,/g' > "$csv_file" # 查询并将结果保存为 txt 文件 mysql -h "$db_host" -u "$db_user" -p"$db_password" -d "$db_name" -e "$sql_query" \ --batch --skip-column-names > "$txt_file" # 提示文件已保存 echo "查询结果已保存为 $csv_file 和 $txt_file"
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论