[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: dúvida shell



Obrigado pela sugestão.

att,
FH

2012/11/29 <jmhenrique@yahoo.com.br>
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®

From: FHRB Toledo <fernandohtoledo@gmail.com>
Date: Thu, 29 Nov 2012 21:18:36 -0200
To: DUP<debian-user-portuguese@lists.debian.org>
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



Reply to: