如何在多个文件上运行命令并将每个文件的输出保存在不同的文件中

如何在多个文件上运行命令并将每个文件的输出保存在不同的文件中

我有一个 vcf 文件 (file.vcf) 和几个(HA1.txt, HA1.txt, HA2.txt,...,HA28.txt)包含各个 ID 的填充文件。

每个总体文件如下所示(每一行都是一个人):

$ cat HA1.txt
    QQ48_SD1A-37    
    ED19_SD1A40-3_357
    TT335_SD1A-20
    HH356_SD1A-7
    Q029B_SD1A38    
    HT73_SD1A-28    
    HT288_SD1A-24
    Q004B_SD1A-1    
    Q027_SD1A-4
    Q096_SD1A-40

我想提取每个人群中每个人的覆盖深度。如何运行此命令:grep -v "^#" file.vcf | cut -f 10 | cut -d ':' -f2对于人口文件中的每个人并将每个人口的输出保存在单独的文件中?

我对每个群体的期望输出如下所示:

.   6   4   6   .   5   .   10  .   7   .
.   9   16  8   3   8   .   16  9   22  .
.   8   11  8   .   8   .   16  8   18  .
6   20  12  20  12  28  3   24  4   26  14
6   25  15  24  13  32  3   25  3   25  15

每一列都是一个人!

答案1

for file in *; do grep '[pattern]' "$file" | cut -f 10 | cut -d ':' -f2 > "$file.output"; done

相关内容