【发布时间】:2017-05-01 08:29:45
【问题描述】:
我有一个 10 到数百行长的 txt 文件,如果前面的字段匹配,我需要对每一行(和输出)的特定字段求和。
这是一个示例数据集:
Sample4;6a0f64d2;size=1;,Sample4;f1cb4733a;size=6;,Sample3;aa44410feb29210c1156;size=2;
Sample2;5b91bef2329bd87f4c7;size=2;,Sample1;909cd4e2940f328b3;size=2;
结构是
<sample ID>;<random id>;size=<numeric>;, 然后是下一个条目。一行可能有数百个条目(这只是一个小例子)
基本上,我想将一行中每个条目的“大小”数字相加(以“,”分隔的条目),但只有那些与特定样本标识符匹配的数字(例如 sample4)
所以,如果我们只想匹配“Sample4”,脚本会生成这个——
awk '{some-code for sample4}' example.txt
7
0
因为第 1 行中带有“Sample4”的条目加起来为 7,但在第 2 行中,没有 Sample4 条目匹配。
这可以为每个“SampleID”完成,或者理想情况下,为列表中提供的所有样本 ID 完成(可能在简单文件中,每个样本 ID 1 行),然后输出每行的计数,每个具有自己的列的样本 ID - 例如对于上面的示例文件,脚本的结果是:
Sample1 Sample2 Sample3 Sample4
0 0 2 7
2 2 0 0
关于如何开始的任何想法?
谢谢!
【问题讨论】:
-
如果“一行中有数百个条目”,
\n的逻辑功能是什么?单独的行是否意味着什么? -
每一行对应一个不同的分类单元或有机体。因此,此脚本的目标是对每行(分类单元)的给定样本 ID 的出现次数进行求和/计数
标签: awk