在 shell 中的单个文件中写入多个文件中 for 循环的结果

Write the outcome of a for loop in multiple files in a single file in shell

我是 shell 脚本(bash/awk...等)的新手所以请原谅我的愚蠢问题。 我知道对你们中的许多人来说这很容易

我有多个文件如下所示:

file1.bam, ...., file1000.bam

对于我在终端中写入的每个文件,执行以下命令 我把一个数字作为结果

samtools view -c -F 4 file1.bam 
9
# and 
samtools view -c -f 4 file1.bam 
2

现在,我正在努力将所有for循环的结果放在一个文本文件中 看起来像这样

file1         9      2
...        ...      ...
file1000    100     50

到目前为止我写了

for each in .bam
do
 echo ${each}
 samtools view -c -F 4 ${each}.bam 
 samtools view -c -f 4 ${each}.bam 
done

编辑:

的输出
samtools view -c -F 4 file1.bam | hexdump -C

00000000  39 0a                                             |9.|
00000002

我建议 bash:

for each in *.bam; do
  data1=$(samtools view -c -F 4 "${each}")
  data2=$(samtools view -c -f 4 "${each}")
  echo -e "${each}\t${data1}\t${data2}"
done

考虑在循环外收集和生成最终输出:

for each in *.bam; do
    printf '%s\n' "${each%.*}"
    samtools view -c -F 4 "$each"
    samtools view -c -f 4 "$each"
done |
awk -v OFS='\t' '{a[NR%3]=[=10=]} NR%3==0{print a[1], a[2], a[0]}'