1
我有一個循環,在bash腳本中。它運行的程序默認在工作時輸出一個文本文件,如果沒有則輸出文件。我運行它很多次(> 500K),所以我想合併輸出文件,逐行。如果循環的一次迭代創建一個文件,我想要取出該文件的最後一行,將其附加到主輸出文件,然後刪除原始文件,這樣我就不會在一個目錄中產生1000個文件。我到目前爲止的循環是:如果循環輸出文件不爲空,則複製最後一行bash
oFile=/path/output/outputFile_
oFinal=/path/output.final
for counter in {101..200}
do
$programme $counter -out $oFile$counter
if [ -s $oFile$counter ] ## This returns TRUE if file isn't empty, right?
then
out=$(tail -1 $oFile$counter)
final=$out$oFile$counter
$final >> $oFinal
fi
done
但是,它不能正常工作,因爲它似乎不會返回所有我想要的文件。那麼有條件的錯誤呢?
你可以澄清在你的if條件中使用$ program變量以及$ phenotype變量嗎?由於這兩個變量未設置,因此很難遵循邏輯。 –
這一行:'$ final >> $ oFinal' ...應該是'echo $ final >> $ oFinal'? –
'$ phenotype'應該可能是'$ counter'而不是 – Adaephon