首页 > 解决方案 > 如果特定值在另一个中,则 awk 解析字段

问题描述

awk下面,我尝试$2使用_only if$3是特定值(ID)进行解析。我正在将该解析后的值读入一个数组,并将其用作查找中的键。确实执行,awk但整个第 2 行或IDin行$3打印不仅仅是所需的。print 语句仅用于查看结果(仅用于测试),不会成为脚本的一部分。谢谢 :)。

awk

awk -F'\t' '$3=="ID"
            f="$(echo $2|cut -d_ -f1,1)"
            {
            print $f
            }' file

文件 tab-delimited

R_Index locus   type
17  chr20:31022959  NON
18  chr11:118353210-chr9:20354877_KMT2A-MLLT3.K8M9  ID

想要的

$f = chr11:118353210-chr9:20354877

标签: awk

解决方案


不完全清楚,请您尝试以下。

awk '{split($2,array,"_");if(array[2]=="KMT2A-MLLT3.K8M9"){print array[1]}}' Input_file

或者,如果您想在打印所有行的同时更改第二个字段的值,请尝试执行一次。

awk '{split($2,array,"_");if(array[2]=="KMT2A-MLLT3.K8M9"){$2=array[1]}} 1' Input_file

推荐阅读