É fácil pegar as linhas que não começam com espaços com algo como awk
:
$ awk '/^\S/' test
ZC12A_MOUSE Mus musculus Q5D1E7 PDB; 2N5J; NMR; -; A=45-89.
ZHX1_HUMAN Homo sapiens Q9UKY1 PDB; 2ECB; NMR; -; A=565-640.
ZHX2_HUMAN Homo sapiens Q9Y6X8 PDB; 2DMP; NMR; -; A=524-599.
Se você quer apenas contar isso, pode canalizar isso para wc -l
, que conta as linhas da entrada:
$ awk '/^\S/' test | wc -l
3
Você também pode fazer coisas mais avançadas com o awk - e é por isso que eu escolhi - como separar o primeiro campo das linhas sem espaços em branco iniciais:
$ awk '/^\S/ {print $1}' test
ZC12A_MOUSE
ZHX1_HUMAN
ZHX2_HUMAN
E a partir daí, você pode contar instâncias exclusivas de cada uma delas. A única condição para isso é que você precisa classificá-lo primeiro. Felizmente existem ferramentas para todas essas coisas na instalação básica:
$ awk '/^\S/ {print $1}' test | sort | uniq -c
1 ZC12A_MOUSE
1 ZHX1_HUMAN
1 ZHX2_HUMAN