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