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