Um jeito bem porco (um pouco didatico, porem} q me vem a mente agora:
echo -e "Animal\tGenotipo"
awk '{print $1}' entrada.txt | sort -u | grep -v Animal | while read linha
do
echo -ne "$linha\t"
grep "^$linha" entrada.txt | awk '{ print $2 } | perl -pe "s/\n//g"
echo
done
Isso deve funcionar (acho, dependendo de como o seu problema pode ser.... Se a
ordem importa, se ele devera manter ou não os genotipos repetidos, se somente
existem 4 genotipos,
Etc etc etc.)
Usei perl e awk, mas você poderia usar cut e sed.
Usando perl puro ou awk puro ou qqr coisa "pura" deve ficar mais elegante.
Enviado pelo meu aparelho BlackBerry®
-----Original Message-----
From: FHRB Toledo <[email protected]>
Date: Thu, 29 Nov 2012 21:18:36
To: DUP<[email protected]>
Subject: dúvida shell
Senhores,
Resolvi esse problema com o programa R, mas queria ter uma idéia de como
fazer isso no shell...
Segue a problema:
Tenho um arquivo que se chama entrada.txt, com o seguinte formato
Animal Genotipo
ab5412 AA
ab5412 AB
ab5412 BB
ab5412 BA
ab5412 BB
ab5454 AA
ab5454 AB
ab5454 BB
ab5454 BA
ab5454 BB
Ao final preciso de um arquivo saída com no formato:
Animal Genotipo
ab5412 AAABBBBABB
ab5454 AAABBBBABB
...
Ou seja, preciso capturar a segunda coluna de entrada e concatenar esses
valores usando a coluna animais como índice!
Não fiz nada ainda que preste, apenas sei que $ cut -f2 entrada.txt captura
a segunda coluna... E aí, alguma dica?
Caso alguém tenha uma solução que apenas reorganize entrada.txt sem
concatenar esses valores em uma string só já está ótimo!
Qualquer sugestão é bem vinda!
Att,
FH