【发布时间】:2018-12-12 22:20:29
【问题描述】:
我有一个像这个例子这样的大文本文件:
example:
chr11 314980 314981 63 IFITM1 -131
chr11 315025 315026 54 IFITM1 -86
chr5 315085 315086 118 AHRR -53011
chr16 316087 316088 56 ITFG3 -86
chr16 316088 316089 90 ITFG3 -131
chr11 319672 319673 213 IFITM3 -131
chr11 319674 319675 514 IFITM3 -164
我想根据第 6 列对行进行分组并对值求和 从每组的第 4 列开始。新文件将有 2 列。第一列是组,第二列是总和 (来自类似组的第 4 列的值的总和)。预期输出 看起来像这样:
expected output:
-131 366
-86 110
-53011 118
-164 514
我正在尝试使用以下代码在awk 中执行此操作。
sort myfile.txt | awk -F'\t' '{ sub(/..$/,"**",$6) }1' OFS='\t' | awk '{print $1 "\t" $2}' > outfile.txt
但实际上它返回一个空文件。你知道怎么解决吗?
【问题讨论】:
-
脚本输出空文件的唯一方法是输入一个空文件,因此输入文件为空,或者您发布的脚本不是您正在运行的脚本,或者您不是得到一个空的输出文件。另外,你希望
sub(/..$/,"**",$6)能为你做什么?
标签: awk