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
,非常感谢这一伟大的技巧,非常有趣。再次感谢:)