Анализ кода в OP показывает, что файл fasta обрабатывается. Я предполагаю, что номер строки, на которую ссылается OP, на самом деле означает порядковый номер. Кроме того, OP, скорее всего, работает с однострочными последовательностями. Предполагая, что истинный вопрос:
Учитывая файл fasta , как я могу вернуть порядковый номер последовательности, содержащей букву "C" или "c" ?
В этом случае ответом будет:
awk '/>/{c++;next} match($0,/[cC]/) { print c }' file
Если ОП также интересуется общим временем появления этого символа, он может сделать:
awk '/>/{c++;next}(n=gsub(/[cC]/,"c",$0)) { print c,n }' file
Если OP будет обрабатывать быстрые файлы, где последовательности охватывают несколько строк, строки awk будут:
awk '/>/{c++;p=1;next} p && match($0,/[cC]/) { print c; p=0 }' file
awk '/>/{if(n)print c,n;c++;n=0;next}{n+=gsub(/[cC]/,"c",$0)}END{if(n) print c,n}' file
Хотя это не совсем то, что описывает OP, будет напечатан порядковый номер c
и общее количество раз, когда символ c
или C
появляется в последовательности. Это не будет печатать букву "C"
, так как это немного странно, печатать то, что вы ищете.