Не могли бы вы попытаться выполнить следующие действия.
awk '$(NF-1)~/Cyp[0-9]+/ && ($NF=="protein_coding" || $NF=="pseudogene" || $NF=="processed_pseudogene" || $NF=="processed_pseudogene"){print $(NF-1),$NF}' Input_file
ИЛИ не одну из указанных выше форм вкладыша:
awk '
$(NF-1)~/Cyp[0-9]+/ && ($NF=="protein_coding" || $NF=="pseudogene" || $NF=="processed_pseudogene" || $NF=="processed_pseudogene"){
print $(NF-1),$NF
}' Input_file
Учитывая, что ваши поля Gene_name
или Gene_type
don ' здесь нет пробелов в их именах. Также для печати полной строки удалите {print $(NF-1),$NF}
часть в вышеуказанных кодах.
РЕДАКТИРОВАТЬ: В случае, если вы хотите использовать регулярное выражение для проверки условия, используйте следующие (снова требуется регулярное выражение быть измененным согласно вашим образцам тоже):
awk '
$(NF-1)~/Cyp[0-9]+/ && ($NF=="protein_coding" || $NF~/.*pseudogene/ || $NF=="processed_pseudogene"){
print $(NF-1),$NF
}' Input_file