Вот мои input.file
(тысячи строк):
FN545816.1 EMBL CDS 9450 9857 . + 0 ID=cds-CBE01461.1;Parent=gene-CDR20291_3551;Dbxref=EnsemblGenomes-Gn:CDR20291_3551,EnsemblGenomes-Tr:CBE01461,GOA:C9YHF8,InterPro:IPR003594,UniProtKB/TrEMBL:C9YHF8,NCBI_GP:CBE01461.1;Name=CBE01461.1;gbkey=CDS;gene=rsbW;product=anti-sigma-B factor (serine-protein kinase);protein_id=CBE01461.1;transl_table=11
Я хочу извлечь только то, что идет после product=
до следующего ;
Итак, в этом случае я хочуполучить «фактор анти-сигма-В (серин-протеинкиназа)»
Я пробовал это:
awk '{for(i=1; i<=NF; i++) if($i~/*product=/) print $(i+1)}' input.file > output.file
, но он печатает только «фактор» (предположительно, потому что между ними нет места)product = "and" anti-sigma-B ". Остальное тоже не печатается.
Я пробовал много предыдущих решений, но ни одно не дало того, что я хочу.
Спасибо.