如果特定值在另一个字段中,则awk解析字段

时间:2019-01-09 13:48:47

标签: awk

在下面的awk中,仅当$2是特定值(ID)时,我才尝试使用_来解析$3。我正在将解析后的值读入数组,并将其用作查找中的键。 awk确实会执行,但是ID中的整行2或带有$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

1 个答案:

答案 0 :(得分:1)

尚不完全清楚,请您试一试。

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