gpt4 book ai didi

awk - 找到与第一列相同的列中的字母并打印它

转载 作者:行者123 更新时间:2023-12-02 20:28:08 26 4
gpt4 key购买 nike

我有包含值的表,我必须找到匹配:第一列与其他列并打印匹配项。

输入:

A:0  A:0.7541   A:0.7396    A:0.7694
A:0 0:0 0:0 0:0
C:0 C:0.8408 C:0.8459 C:0.7939
G:0 G:0.3415 G:0.3290 G:0.4228
G:0 G:0.0343 G:0.0378 T:8.237e06,G:0.02437
C:0 C:0.3895 C:0.3837 A:8.255e06,T:8.255e06,C:0.3623

输出:

    A:0  0.7541     0.7396      0.7694
A:0 0 0 0
C:0 0.8408 0.8459 0.7939
G:0 0.3415 0.3290 0.4228
G:0 0.0343 0.0378 0.02437
C:0 0.3895 0.3837 0.3623

对于最后一行..如果 C 位于第二列,则在这种情况下仅打印匹配字母 C 后的数字,所有列都相同,但可能有更多由“,”分隔的值。因此,在本例中,仅打印包含匹配字母 C 的数字。 我写道:

awk '{split ($1,a,":");split ($2,b,":"); split($3,c,":"); split($4,d,":");
if(a[1]=b[1] && a[1]=c[1] && a[1]==d[1]) print $0}' /home/fil/Desktop/uprava.txt

最佳答案

awk 来救援!

$  awk '{key=substr($1,1,2);
n=split($NF,last,",");
if(n>1) for(i=1;i<=n;i++) if(last[i]~key) {$NF=last[i]; break}
for(i=2;i<=NF;i++) sub(key,"",$i);
print}' file | column -t

A:0 0.7541 0.7396 0.7694
A:0 0:0 0:0 0:0
C:0 0.8408 0.8459 0.7939
G:0 0.3415 0.3290 0.4228
G:0 0.0343 0.0378 0.02437
C:0 0.3895 0.3837 0.3623

关于awk - 找到与第一列相同的列中的字母并打印它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35064922/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com