Linux 使用Shell以全数字格式而不是字符串格式创建CSV文件
我正在使用下面的shell脚本从配置单元表创建csv文件Linux 使用Shell以全数字格式而不是字符串格式创建CSV文件,linux,shell,unix,Linux,Shell,Unix,我正在使用下面的shell脚本从配置单元表创建csv文件 hive -e "select * from pontis_analyst.sms_fact_agg_check order by effective_date_ge_prt desc" |sed 's/[\t]/,/g' | sed 's/sms_fact_agg_check.//g' > /mapr/runtime/tools/DataValidation/fact_agg_check/Output/SMS_Fact_Agg
hive -e "select * from pontis_analyst.sms_fact_agg_check order by effective_date_ge_prt desc" |sed 's/[\t]/,/g' | sed 's/sms_fact_agg_check.//g' > /mapr/runtime/tools/DataValidation/fact_agg_check/Output/SMS_Fact_Agg_Check_Report_${now}.csv
但是csv文件中的值将作为
2019-11-17,218684346,206183052,12501294,5.72,6.85803157E8,6.50372607E8,3.543055E7,5.17
2019-11-16,241711982,240579922,1132060,0.47,7.51192998E8,7.49462398E8,1730600.0,0.23
我希望它是数字格式的完整值,而不是“6.85803157E8”
如何重定向csv文件以获得这些列中的值为“197930257.49”而不是1.98E+08
有人能帮我把它们扔出去吗
如果还没有配置数字和输出.csv文件的选项,请查看hivedocumentation。
select cast(6.50372607E8 as decimal(20,2)) as n
+------------+
| n|
+------------+
|650372607.00|
+------------+
select cast(1.98E+08 as decimal) as n
+---------+
| n|
+---------+
|198000000|
+---------+