Abaixo awk
estou tentando extrair o valor de RSTRING
com base em onde o valor de outra variável $VCF
é encontrado em a file
. O valor de $VCF
já foi extraído e RSTRING
atualmente são todas as linhas começando com R_2019
. O que estou tentando obter é RSTRING
definido com base em onde $VCF
foi encontrado. Obrigado :).
arquivo
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
Se$VCF=19-0008-LastN-FirstN
desejado
RSTRING=R_2019_00_00_xxxx-000-v5.6_xxxxx
Se$VCF=19-0008-Las-Fir
desejado
RSTRING=R_2019_00_00_xxxx-00-v5.6_xxxxx
estranho
awk -v ref="$VCF" 'match($0, ref) {print "$RSTRING"}' file
Responder1
Duas opções:
lendo o arquivo linha por linha, defina um sinalizador booleano ao encontrar o VCF e imprima opróximoRSTRING:
awk -v ref="$VCF" ' $0 ~ ref {have_vcf = 1} have_vcf && /^R_2019/ {print; have_vcf = 0} ' file
leia o arquivo por parágrafos. Se o registro atual contiver o VCF, imprima o último campo do registro:
awk -F '\n' -v RS="" -v ref="$VCF" '$0 ~ ref {print $NF}' file