首页 > 解决方案 > 格式化 sql 查询的输出并创建 csv

问题描述

我从 sql 查询得到的当前输出是

database_name   database_size     unallocated_space   reserved      data          index_size    unused
-------------- ------------------ ------------------  ------------- ------------- ------------- ------------- 
 TEST            22200.00 MB            3160.41 MB      9256544 KB    6597072 KB    1559384 KB    1100088 KB

尝试以格式创建 csv

database_name,database_size,unallocated_space,reserved,data,index_size,unused
Test,22200.00 MB,3160.41 MB,9256544 KB,6597072 KB,1559384 KB,1100088 KB

我目前得到的输出

database_name,database_size,unallocated_space
Test,22200.00,MB,3160.41,MB,9256544,KB,6597072,KB,1559384,KB,1100088,KB

echo "database_name,database_size,unallocated_space" > $outfile
awk -F " " '{print $1","$2","$3",$4","$5","$6","$7}' $readFile  >> $outfile

其中 readfile 是包含 sql 查询输出的文件,outfile 是 csv。

标签: unixawksed

解决方案


你不能只是改变你的 SQL 查询,比如:

Select concat(database_name, ",", database_size, ",", ...) ...

像这样,之后您无需进行任何重新格式化。

当心,我写了“concat”,我不确定连接函数的正确名称。


推荐阅读