Parece que você quer apenas contar o número de linhas exclusivas resultantes de fold -w3 $dnafile
. Isso pode ser feito sem um loop:
fold -w3 "$dnafile" | sort | uniq -c
O sort
classificaria as linhas da saída de fold
, enquanto uniq -c
contaria o número de vezes que cada linha ocorre consecutivamente.
A saída será uma linha para cada linha exclusiva no resultado fold
prefixado com um número.
O erro de sintaxe vem do fato de que uma substituição de comando (ou seja, uma construção que é substituída pela saída de um comando) precisa se parecer com $( ... )
. Não tenho certeza se inserir o $
ausente realmente fará seu código funcionar, já que o shell ainda dividirá o texto resultante em novas linhas e espaços, mas como não sabemos como são os dados de entrada, é difícil especular .
Ter um sub-shell, (...)
, em um loop for nessa posição não é permitido.