2014-09-10 45 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

相關問題