awk在位置和平均值之间的字段中包含名称

awk在位置和平均值之间的字段中包含名称,awk,Awk,在awk下的位置$1和计算出的平均值$4被打印出来。我似乎无法正确地将$2包含在$1和$4之间的输出中。谢谢:) Input.bed chr1:955542-955763 AGRN:exon.1 1 0 chr1:955542-955763 AGRN:exon.1 2 0 chr1:955542-955763 AGRN:exon.2 3 0 chr1:955542-955763 AGRN:exon.2 4 1 当前输出.txt chr1:955542-955763 2

awk
下的位置
$1
和计算出的平均值
$4
被打印出来。我似乎无法正确地将$2包含在
$1
$4
之间的输出中。谢谢:)

Input.bed

chr1:955542-955763  AGRN:exon.1 1   0
chr1:955542-955763  AGRN:exon.1 2   0
chr1:955542-955763  AGRN:exon.2 3   0
chr1:955542-955763  AGRN:exon.2 4   1
当前输出.txt

chr1:955542-955763  21.289593
chr1:957570-957852  304.861702
chr1:955542-955763 AGRN:exon.1  21.289593
chr1:957570-957852 AGRN:exon.2  304.861702
所需输出.txt

chr1:955542-955763  21.289593
chr1:957570-957852  304.861702
chr1:955542-955763 AGRN:exon.1  21.289593
chr1:957570-957852 AGRN:exon.2  304.861702
也许吧

张贴的输入和输出不是真实的,因此#的意义不大:)

编辑:

awk '{for (i=1; i<=NF; i++) print i, $i}' IonXpress_008_150902_4column.bed | head -4
1 chr1:955542-955763
2 AGRN:exon.1
3 1
4 0

awk'{for(i=1;i我认为您的键应该是前两个字段的组合

$ awk '{k=$1 OFS $2; s[k]+=$4; c[k]++} END{for(i in s) print i, s[i]/c[i]}' file
会产生这个

chr1:955542-955763 AGRN:exon.1 0
chr1:955542-955763 AGRN:exon.2 0.5
如果字段2不是键的一部分,并且希望每个字段1具有最后一行的值

$ awk '{k=$1; s[k]+=$4; f2[k]=$2; c[k]++} END{for(i in s) print i, f2[i], s[i]/c[i]}' file
将产生

chr1:955542-955763 AGRN:exon.2 0.25

我认为您的键应该是前两个字段的组合

$ awk '{k=$1 OFS $2; s[k]+=$4; c[k]++} END{for(i in s) print i, s[i]/c[i]}' file
会产生这个

chr1:955542-955763 AGRN:exon.1 0
chr1:955542-955763 AGRN:exon.2 0.5
如果字段2不是键的一部分,并且希望每个字段1具有最后一行的值

$ awk '{k=$1; s[k]+=$4; f2[k]=$2; c[k]++} END{for(i in s) print i, f2[i], s[i]/c[i]}' file
将产生

chr1:955542-955763 AGRN:exon.2 0.25

不包含chr1:957570.957852
记录的输入如何在预期输出中产生这样的结果?如果第2列中有4个值,那么打印这4个值中的哪一个重要吗?首先,最后,随机,去掉后缀?在编辑部分,我添加了一个
awk
来显示字段。示例IIInput和output不是真实的这只是数据外观的一个示例。由于所有4个值组成
$2
,只要引用该字段,它们就会被打印。我可以将
awk
更改为打印
$2
,但随后我会丢失
$1
。我希望这有帮助,谢谢:).一行程序被高估;-)……但对于小样本输入、所需输出和当前输出,加上uno!!祝你好运。@Chris如果你学会使用
awk
数组(伪装的哈希映射)它将帮助您更好地构建程序。不包含
chr1:957570.957852
记录的输入如何在预期输出中产生该结果?如果第2列中有4个值,那么打印4个值中的哪一个值重要吗?首先,最后,随机,去掉后缀?在编辑部分,我添加了一个
awk
,以显示fields。示例输入和输出不是真实的,而只是数据外观的一个示例。由于所有4个值组成
$2
,只要引用该字段,它们就会被打印。我可以将
awk
更改为打印
$2
,但随后我会丢失
$1
。我希望这有帮助,谢谢:)。一行代码很高被高估了;-)……但对于小样本输入、所需输出和当前输出,加上uno!!祝你好运。@Chris如果你学会使用
awk
数组(伪装的哈希映射)它将帮助您更好地构建程序。非常感谢。我正在学习
awk
,非常感谢这一伟大的技巧,非常有趣。再次感谢:)非常感谢。我正在学习
awk
,非常感谢这一伟大的技巧,非常有趣。再次感谢:)