我有一个包含大量CSV文件的目录,我想将它们全部导入MongoDB,然后删除所有这些文件。
在Ubuntu 14.04上,以下内容可行:
for f in /home/v/scr/alerts/*;
do
mongoimport -d emails -c main --type csv --file "$f" --headerline && rm /home/v/scr/alerts/*;
done
但是,我现在收到以下输出(在Ubuntu 16.04上):
2018-01-29T21:49:00.752+0000 connected to: localhost
2018-01-29T21:49:00.759+0000 imported 1 document
2018-01-29T21:49:00.767+0000 Failed: open /home/v/scr/alerts/fH88Vaxr.csv: no such file or directory
2018-01-29T21:49:00.767+0000 imported 0 documents
2018-01-29T21:49:00.772+0000 Failed: open /home/v/scr/alerts/m45EkP9N.csv: no such file or directory
2018-01-29T21:49:00.772+0000 imported 0 documents
似乎第一个CSV文件已正确导入,然后删除了所有内容,这不是我想要的。
答案 0 :(得分:1)
首次导入后,您将删除源目录中的所有文件
仅删除已导入的文件
for f in /home/v/scr/alerts/*;
do
mongoimport -d emails -c main --type csv --file "$f" --headerline
rm $f #rm only current file
done
成功导入后或删除所有源文件
for f in /home/v/scr/alerts/*;
do
mongoimport -d emails -c main --type csv --file "$f" --headerline
done
rm /home/v/scr/alerts/* #rm all files
我们可以选择包括isFile检查
if [ -f $f ]; then
# import
fi