我需要从我的数据中提取特定信息并对其进行总结。
我有246个文件,我需要做同样的事情。
所以我做了
for f in *.vcf; awk -F"\t" 'NR>1 {split($10,a,":");
count10[a[7]]++}
END {for (i in count10)
if (i>0.25)
sum += count10[i];
print sum }' "$f" > ${f}.txt
我为每个旧文件获取新文件,其中包含我从旧文件中提取的信息(某些整数)
然后我使用cat函数连接新文件以生成一个最终的大文件
是否有更简单的方法可以连接所有文件而不生成单个新文件
答案 0 :(得分:1)
您可以将代码中的最后一行更改为如下所示,然后将继续附加到您的FINAL输出文件,如下所示
for f in *.vcf; awk -F"\t" 'NR>1 {split($10,a,":");
count10[a[7]]++}
END {for (i in count10)
if (i>0.25)
sum += count10[i];
print sum }' "$f" >> FINAL.txt
希望这会有所帮助..
答案 1 :(得分:0)
快速而肮脏
rm Summary.txt 2>/dev/null
for f in *.vcf; awk -F"\t" 'NR>1 {split($10,a,":");
count10[a[7]]++}
END {for (i in count10)
if (i>0.25)
sum += count10[i];
print sum >> Summary.txt }' "$f"
如果再解释一下,可以直接使用awk跳过第一个shell级别