2014-09-10 97 views
0

我想从PuTTY中运行一个名为mETL的python包,并将其用于包含在文件夹中的所有文件。 python软件包是mETL,我用它来加载包含在3个.csv文件中的数据,这个文件叫做upload-A.csv,upload-B.csv和upload-C.csvBash脚本在文件夹中的所有文件上执行python包

当我这样做的时候,手动使用下列命令:

从每一个文件正确上传或更新,并且pickle文件被相应地更新
metl -m migration.pickle -t new_migration.pickle -s folder_test/upload-A.csv config3.yml 
metl -m migration.pickle -t new_migration.pickle -s folder_test/upload-B.csv config3.yml 
metl -m migration.pickle -t new_migration.pickle -s folder_test/upload-C.csv config3.yml 

所有数据。

但是在做这个手工我想打一个循环,这是否包含在我的“folder_test /”文件夹中的所有文件,为此,我尝试了以下bash脚本:

folder_var=folder_test 
for x in $folder_var 
do 
metl -m migration.pickle -t new_migration.pickle -s $x config3.yml 
done 

后会发生什么这就是创建了pickle文件,但没有数据上传到数据库。

+0

可以格式化你使用更可读的方式的命令,无法理解从它了。 – g4ur4v 2014-09-10 13:18:53

回答

1

试试这个

for x in folder_test/* 
do 
metl -m migration.pickle -t new_migration.pickle -s "${x}" config3.yml 
done 
+0

1)不要使用'ls',在'folder_test/*'中使用'for x,2)使用空格保护文件名,确保你使用'$ x''无论它在哪里使用 – 2014-09-10 13:38:27

+0

感谢您提供更改。 – g4ur4v 2014-09-10 13:41:23

+0

它非常完美,非常感谢! – 2014-09-10 13:56:20

相关问题