2016-12-28 156 views
1

我是新來的Python和外殼,我需要爲循環這句話我怎樣才能讓貓殼循環?

cat $input | sst print-vectors $model_bin_file > tors.txt 

$input這裏是一個文件包含one line,我怎樣才能使它循環爲一個語句文件中的所有行?該文件我有一個包含名爲out.txt

所有行我試着寫

for i in $(cat $out.txt | sst print-tors $model_bin_file) 
do 
i> tors.txt 
done 

我得到i: not found

+0

對於'vectors.txt'文件中的每一行,你想運行'fasttext print-vectors $ model_bin_file'? – Inian

+0

請參考下面的我的更新,我想你需要用'>>'附加運算符來追加行到'vectors.txt' – Inian

+0

對於'fasttext print-vectors $ model_bin_file',行的內容是否重要?或者你只是想運行'fasttext print-vectors $ model_bin_file' N次,其中N = out.txt文件中的行數? – sameerkn

回答

3

使用適當的循環,看到你爲什麼DontReadLinesWithFor以及如何避免無用的使用-的-cat

#!/bin/bash 
while IFS= read -r line 
do 
    # do whatever you want to do with the line read stored as "$line" 
    echo "$line" | ass print-tors "$model_bin_file" 
done <"out.txt" >> "tors.txt" 
+0

它仍然工作,我會知道它會在完成後成功工作,然後我會告訴你 – user1

+0

@downvoter:小心解釋你爲什麼這樣做?它背後的理由? – Inian

+0

感謝它的工作,它剛剛完成 – user1