代码之家  ›  专栏  ›  技术社区  ›  MAPK

如何从bash中的embedded for loop编写多个文本文件?

  •  1
  • MAPK  · 技术社区  · 7 年前

    下面的bash循环使用perl脚本。它被期望为每一个 $i 在每个 $f 我想另存为单独的文本文件。下面的代码可以完成这项工作,但不是为个人保存 $一 ,它为 美元 并将 18 to 24 在一个文件中。我可能需要在这个循环中重新定位write命令,或者有更好的方法来执行这个操作吗?

    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
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   that other guy    7 年前

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

    你可以用 { 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