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

如果特定值位于另一个字段中,则解析字段的awk,awk,Awk,在下面的awk中,仅当$3是一个特定的值(ID)时,我才尝试使用\ucode>解析$2。我正在将解析后的值读入数组,并将其用作查找中的键。虽然执行了awk,但是$3中的整个第2行或带有ID的行并不仅仅打印所需的内容。print语句仅用于查看结果(仅用于测试),不属于脚本的一部分。谢谢:) awk awk -F'\t' '$3=="ID" f="$(echo $2|cut -d_ -f1,1)" { print $f

在下面的
awk
中,仅当
$3
是一个特定的值(ID)时,我才尝试使用
\ucode>解析
$2
。我正在将解析后的值读入数组,并将其用作查找中的键。虽然执行了
awk
,但是
$3
中的整个第2行或带有
ID
的行并不仅仅打印所需的内容。print语句仅用于查看结果(仅用于测试),不属于脚本的一部分。谢谢:)

awk

awk -F'\t' '$3=="ID"
            f="$(echo $2|cut -d_ -f1,1)"
            {
            print $f
            }' file
文件
制表符分隔

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

$f = chr11:118353210-chr9:20354877

不太清楚,请你试试下面的

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
非常感谢:)。