gpt4 book ai didi

linux - 如何在 bash 中从嵌入式 for 循环写入多个文本文件?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:34:33 27 4
gpt4 key购买 nike

我在下面有一个使用 perl 脚本的 bash 循环。期望为每个 $f 中的每个 $i 输出一些内容,我想将其保存为单独的文本文件。我下面的代码完成了这项工作,但它不是为单个 $i 保存,而是为 $f 保存并将 18 的输出设为 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

最佳答案

循环上的重定向是针对每个循环的,而不是针对每个迭代的。

您可以改用 { 命令组; 围绕你想要的命令并重定向它:

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

关于linux - 如何在 bash 中从嵌入式 for 循环写入多个文本文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51566856/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com