Это общее awk
решение для разбора определенного именованного поля из поля атрибутов (9-й вкладки -поля с разделителями )файла в формате общих функций (] ГФФ):
BEGIN { OFS = FS = "\t" }
function get_attrib_by_name(key, n,attrib,kv) {
# Split the attribute field on semi-colons.
n = split($9, attrib, ";")
# Loop over the attributes and split each on "=".
# When we've found the one we're looking for (by key name in "key"),
# return the corresponding value.
for (i = 1; i <= n; ++i) {
split(attrib[i], kv, "=")
if (kv[1] == key) {
return kv[2]
}
}
}
# Using the above function.
{
name = get_attrib_by_name("gene_name")
print $0, name
}
Это можно использовать как
$ awk -f script.awk file.gff
, где script.awk
— приведенный выше скрипт.