我正在尝试使用awk
删除file
中与NM_
之后但.
$2
之前的数字不匹配的行list
。谢谢你:)。
文件
204 NM_003852 chr7 + 138145078 138270332 138145293
204 NM_015905 chr7 + 138145078 138270332 138145293
列表
TRIM24 NM_015905.2
AWK
awk -v OFS="\t" '{ sub(/\r/, "") } ; NR==FNR { N=$2 ; sub(/\..*/, "", $2); A[$2]=N; next } ; $2 in A { $2=A[$2] } 1' list file > out
当前输出
204 NM_003852 chr7 + 138145078 138270332 138145293
204 NM_015905.2 chr7 + 138145078 138270332 138145293
所需的输出(第1行被删除,因为那是不匹配的行)
204 NM_015905.2 chr7 + 138145078 138270332 138145293
答案 0 :(得分:2)
awk 'NR==FNR{split($2,f2,".");a[f2[1]];next} $2 in a' list file
答案 1 :(得分:1)
$ awk -F'[ .]' 'NR==FNR{a[$2];next}$2 in a' list file
204 NM_015905 chr7 + 138145078 138270332 138145293