在awk
下面,我试图RSTRING
根据另一个变量的值$VCF
在file
. 的值$VCF
已被提取,RSTRING
当前是所有以 开头的行R_2019
。我想要得到的是RSTRING
根据$VCF
找到的地方设置的。谢谢 :)。
文件
xxx_0000 19-0004-La-Fi
xxx_0001 19-0005-Last-Firs
xxx_0003 19-0008-LastN-FirstN
xxx_0005 190320-Control
R_2019_00_00_xxxx-000-v5.6_xxxxx
xxx_0007 19-0000-LastName-FirstName
xxx_0009 19-0001-Las-Fir
xxx_0011 190319-Control
R_2019_00_00_xxxx-00-v5.6_xxxxx
如果$VCF=19-0008-LastN-FirstN
想要的
RSTRING=R_2019_00_00_xxxx-000-v5.6_xxxxx
如果$VCF=19-0008-Las-Fir
想要的
RSTRING=R_2019_00_00_xxxx-00-v5.6_xxxxx
awk
awk -v ref="$VCF" 'match($0, ref) {print "$RSTRING"}' file
两种选择:
逐行读取文件,找到 VCF 时设置一个布尔标志,然后打印下一个RSTRING:
按段落阅读文件。如果当前记录包含 VCF,则打印记录的最后一个字段: