(shell脚本)将文件数据转为csv格式导入MongoDB(2)

简介

上篇文章介绍了
《将文本数据转为JSON格式导入MongoDB》
链接:
https://blog.csdn.net/qq_43380180/article/details/109203607
本篇文章将介绍使用shell脚本将文件数据转为CSV格式导入MongoDB。

流程图:

源数据
是否为CSV格式
首行是否为字段名
分隔符是否为逗号
执行mongoimport导入MongoDB
sed -i 首行添加字段名
替换分隔符为逗号

首行追加字段名

#首行追加字段名
sed -i '1i key1,key2,key3' cp_original.txt

-i 插入数据
1i 在首行插入数据
'1i key1,key2,key3' 等同于 1i\key1,key2,key3

替换分隔符(文件)

sed -i "/s/!^/,/g" cp_original.txt

替换文件中的字符串,将!^替换为,

将csv数据导入MongoDB

#将csv数据导入MongoDB
mongoimport -d dbname -c ${txt_name} --headerline --file ${pwd_path}/csv_data.csv

--headline 将首行数据作为字段名

异常

有问题可参考上篇JSON数据入MongoDB的文章,https://blog.csdn.net/qq_43380180/article/details/109203607
有完整shell语法解释。

shell完整代码

#/bin/bash
txt_name = ${1%.*}
pwd_path = `pwd`

#复制源文件
`cp $1 cp_original.txt`

#首行追加字段名
sed -i '1i key1,key2,key3' cp_original.txt

#替换分隔符为逗号--1
:<<EOF
while read line;
do
	str=${line//'!^'/','}
	echo str
done < ${pwd_path}/cp_original.txt > ${pwd_path}/csv_data.csv
EOF
#替换分隔符--2
sed -i "/s/!^/,/g" cp_original.txt
`cp cp_original.txt md_process_folder/csv_data.csv`

#删除集合
mongo <<EOF
use dbname
db.[txt_name].drop()
<<EOF


#将csv数据导入MongoDB
mongoimport -d dbname -c ${txt_name} --headerline --file ${pwd_path}/csv_data.csv


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值