使用shell脚本导出MySql查询的月表数据到EXCEL中
经常会踫到这样的场景需求:自定义时间从MySql流水月表中SELECT
出来数据到excel报表文件中,所以自己写了这个shell脚本来处理。
1 实现思路
代码比较简单,主要使用了mysql -e
执行SQL语句,然后重定向到txt文件中。由于linux默认是uft-8
的格式,所以在使用awk
命令处理完txt文件后,通过 …
经常会踫到这样的场景需求:自定义时间从MySql流水月表中SELECT
出来数据到excel报表文件中,所以自己写了这个shell脚本来处理。
代码比较简单,主要使用了mysql -e
执行SQL语句,然后重定向到txt文件中。由于linux默认是uft-8
的格式,所以在使用awk
命令处理完txt文件后,通过 …
经常会踫到这样的场景需求:批量向MySQL数据库插入数据,显然手工INSERT
成千上万条数据是不现实的,所以自己写了这个shell脚本来处理。
shell脚本批量插入10万条数据到MySQL中,其中对应表唯一索引是用户uid
。因此在程序循环1万次数时,每次都使uid
自增1就行了。
鉴于数据量比较大,我们的shell脚本需要考虑MySQL执行INSERT …
在写shell脚本时,会遇到要把一个符点数转换成整数的情况。之前线上一个shell脚本在用awk从文本中读取出一个带两位小数的符点数后,是直接把它乘以100转换成整数的。脚本一直运行正常,直到后面遇到了一个符点数19004.44
,它在乘以100后得到的不是1900444
而是科学记数1.90044e+06
,导致导入数据库失败。后面测试发现符点数19004.42
也存在同样的问题,如果下图所示 …
月末需要对系统注册用户进行报表统计,在使用Navicat从MySQL数据库中导出数据到excel文件时,发现最大只能导出为65536(美好的数字)行的数据。按理说 Navicat应该是从数据库中读取一条记录会立即写到excel文件中,不应该只读取65536范围内的数据然后一次性写到文件里面。
鉴于Navicat的限制,只能想想其它办法了,这里选择使用shell脚本来处理。如下图所示,在Navicat中对select出来的数据右键,然后选择复制为
-制表符分隔值(字段名和数据)
把select出来的数据粘贴到任意文本文档中 …
在上一篇文章中通过重装yum解决了无法使用Python3解释执行的问题,但是yum -y update
后又会使得之前设置的软链接(ln -s /usr/local/bin/python3.6 /usr/bin/python
)被替换成python2.7 …
之前把现有这台阿里CentOS7.2系统的Python2.7.5升级成Python3.6后,yum工具就不能使用了。当时网上查了下原因,都说是Python3导致的,但是试了很多种方法还是没解决,后面也就一直没管了。因为最近要弄一个Nodejs微信小程序,需要用yum安装一些开发工具,就不得不修复这个问题了。
直接执行yum
命令就会提示/usr/bin …
前段时间试了把虚拟机CentOS下面的C/C++工程中的Makefile文件改用clang/clang++来编译,这篇文章主要是介绍如何在CentOS7.3系统编译安装最新的LLVM和Clang4.0.1。
关于GCC、LLVM和Clang关系可以参考《这篇文章》,个人的理解如下:
LLVM 是 Low Level Virtual Machine 的简称 …
在平常c/c++开发中经常遇到日期处理的情形,例如求两个给定的日期之间相差的天数或者需要使用map存储两个固定日期范围内的所有日期。前段时间项目中需要用shell脚本批量处理给定的两个日期范围内所有日期产生的日志,当时以为shell处理不方便就用c++来处理了。后面用shell实现了下,发现也挺简单的。
1、显然不能直接把这两个日期当作整数相减得到差值然后把初始日期不断累加1得到所有的日期,而且要考虑大小月的问题。
2、为了以后开发的方便,需要把这个求两个固定上期范围内的所有日期功能封装在一个函数(即下面脚本中的genAlldate
)中 …