在下面的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
答案 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