下面有一个使用perl脚本的bash循环。这是期望输出的东西,为每个$i
在每个$f
,我想要保存为单独的文本文件。下面的代码可以完成这项工作,但它不是为单个$i
保存,而是为$f
保存,并将18 to 24
的输出放在一个文件中。也许我必须在这个循环中重新定位写命令,或者有更好的方法来做到这一点?
for f in *.fastq; do
echo "Processing: " $f
for i in $(seq 18 24); do
echo "Doing: " $i
perl /home/owner/perl/count.pl $f $i
done > >(tee /media/owner/${f}_${i}.txt) 2>&1
done
发布于 2018-07-28 08:14:08
循环上的重定向是每个循环,而不是每个迭代。
相反,您可以在所需的命令周围使用{ command group; }
并重定向:
for f in *.fastq;
do
echo "Processing: " $f
for i in $(seq 18 24);
do
{
echo "Doing: " $i
perl /home/owner/perl/count.pl $f $i
} > >(tee /media/owner/${f}_${i}.txt) 2>&1
done
done
https://stackoverflow.com/questions/51566856
复制相似问题