Не могли бы вы попробовать следующее.
awk -F'|' '/^>/{val=$2;next} {print val,gsub(/[kK]/,""),gsub(/[rR]/,"")}' Input_file
Если вы хотите получить вывод заголовков тоже, попробуйте следующее.
awk -F'|' 'BEGIN{print " K R"}/^>/{val=$2;next} {print val,gsub(/[kK]/,""),gsub(/[rR]/,"")}' Input_file
EDT1: В соответствии с комментарием ОП в случае, если мы хотим получить счет 2 непрерывных вхождений KK
или kk
, затем попробуйте выполнить следующее.
awk -F'|' '/^>/{val=$2;next} {print val,gsub(/kk|KK/,""),gsub(/rr|RR/,"")}' Input_file
РЕДАКТИРОВАТЬ 2: Чтобы получить k
, kk
, r
, rr
, используйте следующие.
awk -F'|' '/^>/{val=$2;next} {line=$0;print val,gsub(/[kK]/,""),gsub(/[rR]/,""),gsub(/kk|KK/,"",line),gsub(/rr|RR/,"",line)}' Input_file
С заголовками:
awk -F'|' '
BEGIN{
print " k/K\tr/R\tkk/KK\trr/RR"
}
/^>/{
val=$2
next
}
{
line=$0
print val,gsub(/[kK]/,""),gsub(/[rR]/,""),gsub(/kk|KK/,"",line),gsub(/rr|RR/,"",line)
}' OFS="\t" Input_file
Вывод будет следующим.
k/K r/R kk/KK rr/RR
Q96A73 7 11 0 0
P13674 17 13 1 2
Q7Z4N8 11 11 0 1
P04637 2 4 0 0