Su pregunta establece que la columna 3 contiene nombres de genes. Supongo que su entrada real es la siguiente:
column1 column2 Rv0729,Rv0993,Rv1408
column1 column2 Rv0162c,Rv0761c,Rv1862,Rv3086
column1 column2 Rv2790c
Cada nombre de gen en la columna 3 contiene una Rv
subcadena principal . Por lo tanto, podemos contarlos en Python así:
$ python -c "import sys;print map(lambda x: x.split()[2].count('Rv'),sys.stdin.readlines())" < input.txt
[3, 4, 1]
La lista resultante muestra el recuento de genes en cada línea, en su orden respectivo. Si queremos hacerlo más detallado e incluir la posibilidad de que los genes no contengan la cadena "Rv" (pero supongamos que column3 es una cadena de valores separados por comas), también podemos hacer lo siguiente:
#!/usr/bin/env python
import sys
with open(sys.argv[1]) as fd:
for index,line in enumerate(fd):
columns = line.strip().split()
num_genes=len(columns[2].split(","))
print("Line "+str(index)+" contains "+str(num_genes))
Prueba de funcionamiento:
$ ./count_genes.py input.txt
Line 0 contains 3
Line 1 contains 4
Line 2 contains 1