Re: dúvida shell
Obrigado pela sugestão. att, FH 2012/11/29 jmhenri...@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 fernandohtol...@gmail.com *Date: *Thu, 29 Nov 2012 21:18:36 -0200 *To: *DUPdebian-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 AAAABB ab5454 AAAABB ... 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
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 AAAABB ab5454 AAAABB ... 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
Res: dúvida shell
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 fernandohtol...@gmail.com Date: Thu, 29 Nov 2012 21:18:36 To: DUPdebian-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 AAAABB ab5454 AAAABB ... 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
dúvida, shell script (bash)
Oi pessoal. estou com um probleminha em um script que eu fiz. Script--(aaa.sh )-- #!/bin/bash # Script para verificar se 1 até 50 usuários estão logados no sistema # Este script gera um log em /home/fo0x/teste/log_script1 #variáveis users=/home/fo0x/teste/users lixo=/home/fo0x/teste/lixo log=/home/fo0x/teste/log_script1 n=1 x=$ #usuários do sistema echo `cut -f1 -d : /etc/passwd | sort | more` $users #$* while [ $n -le 50 ] do { if cat $users | grep $x$n $lixo 2 $lixo then { if who | grep $x$n $lixo then echo $x$n está logado no sistema echo $x$n está logado no sistema:::`date`:::`whoami` $log else echo $x$n não está logado no sistema echo $x$n não está logado no sistema:::`date`:::`whoami` $log fi } else echo $lixo fi } n=`expr $n + 1` done --fim do script-- bom, isso é script para verificar se usuários (no máx. 50) estão logados no sistema e gravar um log dos users logados ou não, a data e quem executou o script. tipo, isso é uma pesquisa. ex: ./aaa.sh fo0x gabriel paulo roberto ira procurar pelos usuários: fo0x, gabriel, paulo, roberto. Se eles fizerem parte do sistema eles vão ser citados no log, dizendo se estão logados ou não. problema: $x$n quando n=1 : $x$n = $1 quando n=2 : $x$n = $2 e assim por diante, até chegar em 50. porem esse $1, $2, não estão sendo reconhecidos como o parametro 1, parametro 2, ... o $1, $2, , está saindo como caractere e não como o parametro 1, parametro 2, ... no exemplo: parametro 1 = fo0x | parametro 2 = gabriel | (...) so que ao inves do $1 indicar o parametro 1, que é fo0x, ele sai no comando como caractere normal $1, e não como o caractere especial $1, que indica o primeiro parametro. alguem ai pode me ajudar ? vlw, gabriel.
Re: dúvida, shell script (bash)
#!/bin/bash # Script para verificar se 1 até 50 usuários estão logados no sistema # Este script gera um log em /home/fo0x/teste/log_script1 #variáveis users=/home/fo0x/teste/users lixo=/home/fo0x/teste/lixo log=/home/fo0x/teste/log_script1 n=1 x=$ #usuários do sistema echo `cut -f1 -d : /etc/passwd | sort | more` $users #$* while [ $n -le 50 ] do { if cat $users | sed -n -e $n\p $lixo 2 $lixo then { if who | sed -n -e $n\p $lixo then echo $(awk '{print $1}') está logado no sistema echo $(awk '{print $1}') está logado no sistema:::`date`:::`whoami` $log else echo $(awk '{print $1}') não está logado no sistema echo $(awk '{print $1}') não está logado no sistema:::`date`:::`whoami` $log fi } else echo $lixo fi } n=`expr $n + 1` done se nao estou enferrujado, talvez isso ajude On 8/13/07, Gabriel Muricy [EMAIL PROTECTED] wrote: Oi pessoal. estou com um probleminha em um script que eu fiz. Script--(aaa.sh)-- #!/bin/bash # Script para verificar se 1 até 50 usuários estão logados no sistema # Este script gera um log em /home/fo0x/teste/log_script1 #variáveis users=/home/fo0x/teste/users lixo=/home/fo0x/teste/lixo log=/home/fo0x/teste/log_script1 n=1 x=$ #usuários do sistema echo `cut -f1 -d : /etc/passwd | sort | more` $users #$* while [ $n -le 50 ] do { if cat $users | grep $x$n $lixo 2 $lixo then { if who | grep $x$n $lixo then echo $x$n está logado no sistema echo $x$n está logado no sistema:::`date`:::`whoami` $log else echo $x$n não está logado no sistema echo $x$n não está logado no sistema:::`date`:::`whoami` $log fi } else echo $lixo fi } n=`expr $n + 1` done --fim do script-- bom, isso é script para verificar se usuários (no máx. 50) estão logados no sistema e gravar um log dos users logados ou não, a data e quem executou o script. tipo, isso é uma pesquisa. ex: ./aaa.sh fo0x gabriel paulo roberto ira procurar pelos usuários: fo0x, gabriel, paulo, roberto. Se eles fizerem parte do sistema eles vão ser citados no log, dizendo se estão logados ou não. problema: $x$n quando n=1 : $x$n = $1 quando n=2 : $x$n = $2 e assim por diante, até chegar em 50. porem esse $1, $2, não estão sendo reconhecidos como o parametro 1, parametro 2, ... o $1, $2, , está saindo como caractere e não como o parametro 1, parametro 2, ... no exemplo: parametro 1 = fo0x | parametro 2 = gabriel | (...) so que ao inves do $1 indicar o parametro 1, que é fo0x, ele sai no comando como caractere normal $1, e não como o caractere especial $1, que indica o primeiro parametro. alguem ai pode me ajudar ? vlw, gabriel. -- P-p-por hoje é só p-p-pessoal (Gaguinho) []s Mário Felipe Rinaldi Gmail/Gtalk: [EMAIL PROTECTED] MSN: [EMAIL PROTECTED] Site: http://rinaldi-rinaldi.info /* Isto é um comentário e você não pode ve-lo */ [ END OF TRANSMISSION ]
Dúvida - Shell
Olá turma. Existe uma forma de se compartilhar um terminal no linux. Assim, é possível que um usuário consiga ver o que o outro está digitando no terminal e vice versa em tempo real. Sei que é possível fazer isso. Alguém sabe como? Abraço a todos! Ricardo __ Fale com seus amigos de graça com o novo Yahoo! Messenger http://br.messenger.yahoo.com/
Re: Dúvida - Shell
On Monday 15 January 2007 15:33, Ricardo Martins wrote: Olá turma. Existe uma forma de se compartilhar um terminal no linux. Assim, é possível que um usuário consiga ver o que o outro está digitando no terminal e vice versa em tempo real. Sei que é possível fazer isso. Alguém sabe como? Abraço a todos! Ricardo http://debaday.debian.net/2007/01/10/gems-broadcast-your-terminal/
Re: Dúvida - Shell
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 On 01/15/2007 05:28 PM, Cláudio E. Elicker wrote: On Monday 15 January 2007 15:33, Ricardo Martins wrote: Olá turma. Existe uma forma de se compartilhar um terminal no linux. Assim, é possível que um usuário consiga ver o que o outro está digitando no terminal e vice versa em tempo real. Sei que é possível fazer isso. Alguém sabe como? Abraço a todos! Ricardo http://debaday.debian.net/2007/01/10/gems-broadcast-your-terminal/ Você também pode usar o screen, mas vai dar um pouco mais de trabalho. ;) http://www.delorie.com/gnu/docs/screen/screen_25.html http://aperiodic.net/screen/ Abraço, - -- Felipe Augusto van de Wiel (faw) Debian. Freedom to code. Code to freedom! -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.6 (GNU/Linux) Comment: Using GnuPG with Debian - http://enigmail.mozdev.org iD8DBQFFq+mUCjAO0JDlykYRAuT8AKCidYl9HJoHzeXzZ9L2u9LaqBMZswCfST21 jOGplutOI2LoVUqVZZtf9xI= =nePM -END PGP SIGNATURE- -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]
[off-topic] Dúvida shell script: extração de colunas
Olá, Tenho uma saída (cat, por exemplo) com 'n' colunas separadas por espaço, porém quero apenas a coluna 'm' (mn), como extraí-la? E caso as colunas fossem separadas por algum outro caractere 'c'? Grato, -- Douglas Augusto
Re: [off-topic] Dúvida shell script: extração de colunas
On Tue, 22 Jul 2003 13:45:52 -0300 Douglas A. Augusto [EMAIL PROTECTED] wrote: Olá, Tenho uma saída (cat, por exemplo) com 'n' colunas separadas por espaço, porém quero apenas a coluna 'm' (mn), como extraí-la? E caso as colunas fossem separadas por algum outro caractere 'c'? Use o cut. cut -d caracter delimitador -f coluna que quer arquivo []'s Eduardo
Re: [off-topic] Dúvida shell script: extra ção de colunas
Em Tue, 22 Jul 2003 13:45:52 -0300 Douglas A. Augusto [EMAIL PROTECTED] escreveu: Olá, Tenho uma saída (cat, por exemplo) com 'n' colunas separadas por espaço, porém quero apenas a coluna 'm' (mn), como extraí-la? E caso as colunas fossem separadas por algum outro caractere 'c'? Dá uma olhada na man do comando cutt. Pode te ajudar. -- -- Michelle Ribeiro Debian GNU/Linux - Your next Linux distribution http://www.debian.org/ || http://www.spi-inc.org/
Re: [off-topic] Dúvida shell script: extração de colunas
No dia 22/07/2003 às 14:02, Eduardo Goncalves [EMAIL PROTECTED] escreveu: Use o cut. cut -d caracter delimitador -f coluna que quer arquivo Era isso o que estava procurando, obrigado a todos que responderam. -- Douglas Augusto
Re: Dúvida Shell Script
On Wed, 30 Apr 2003 16:23:38 -0300, Rubens Saraiva Nogueira wrote: tag1/tag tagab/tag tagZZ/tag Preciso retornar: 1abZZ man re_syntax -- _ Leandro Guimarães Faria Corsetti Dutra+41 (21) 648 11 34 / \ Lausanne, Vaud, Suisse+41 (78) 778 11 34 \ / Brasil+55 (11) 5686 2219 / \ http://geocities.yahoo.com.br/lgcdutra/
Re: Dúvida Shell Script
Wesley, Felipe e amigos da lista, Obrigado pela atenção dispensada e pelo código com as soluções. O problema é que não sei se vou poder usar C ou PHP por normas do projetos entende? Se tiverem a solução em script shell / bash fico muito grato. Obrigado. Rubens Saraiva - Original Message - From: Wesley Alves de Oliveira/MPGO [EMAIL PROTECTED] To: [EMAIL PROTECTED]; debian-user-portuguese@lists.debian.org Sent: Wednesday, April 30, 2003 5:45 PM Subject: Re: Dúvida Shell Script Existe uma variável externa que você deve setá-la para depois fazer isso, mas em C fica mais fácil tipo: int main(int argc, char *argv[]) { FILE *arquivo; char c, buffer[TAMANHO]; /* Segunda variavel opcional, pois se quizer que apenas mostre na tela não é necessário Estou implementando a função para que você não precise de buffer */ if((arquivo = fopen(path do arquivo,r))==NULL){ puts(Erro ao ler arquivo ou você não tem permissão de leitura...); return(1); } while((c=getc(arquivo))!=EOF){ if(c == 'g'){ /* Observando seu texto aí em baixo, testaremos primeiro a letra g e depois sempre a suasubsequente */ c = getc(arquivo); if(c == ){ /* Agora testamos a subsequente se for, pronto imprima na tela o conteúdo entre elas */ while((c = getc(arquivo)) != '') { printf(%c,c); } } } } fclose(arquivo); return(0); } Se você não tiver dentro das tags do html uma coicidência da letra g e posteriormente a o ele vai imprimir corretamente, quer dizer ainda não testei acho que vai funcionar. Se quizer armazenar no lugar de printf(%c,c) coloca buffer[i] = c; declare uma variável static int i; no inicio do arquivo, e de ntro do corpo do laço while de impressão coloque o seguinte: while((c = getc(arquivo))!=''){ i = 0; buffer[i] = c; i++; } Se o código não lhe interessar ou você preferir em script, hoje a noite eu olho lá em casa e lhe mostro o código em Script Bash como seria, mas só vou lhe postar amanhã pois a internet é mais barata. Pessoal, Como fazer para pegar dados de um arquivo especificando caracteres que vem antes e depois?? Exemplo: Tenho um arquivo texto com: tag1/tag tagab/tag tagZZ/tag Preciso retornar: 1abZZ Ou seja, preciso todos os dados de tag. Obrigado. Rubens -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED] -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]
Dúvida Shell Script
Pessoal, Como fazer para pegar dados de um arquivo especificando caracteres que vem antes e depois?? Exemplo: Tenho um arquivo texto com: tag1/tag tagab/tag tagZZ/tag Preciso retornar: 1abZZ Ou seja, preciso todos os dados de tag. Obrigado. Rubens
Re: Dúvida Shell Script
Existe uma variável externa que você deve setá-la para depois fazer isso, mas em C fica mais fácil tipo: int main(int argc, char *argv[]) { FILE *arquivo; char c, buffer[TAMANHO]; /* Segunda variavel opcional, pois se quizer que apenas mostre na tela não é necessário Estou implementando a função para que você não precise de buffer */ if((arquivo = fopen(path do arquivo,r))==NULL){ puts(Erro ao ler arquivo ou você não tem permissão de leitura...); return(1); } while((c=getc(arquivo))!=EOF){ if(c == 'g'){ /* Observando seu texto aí em baixo, testaremos primeiro a letra g e depois sempre a suasubsequente */ c = getc(arquivo); if(c == ''){ /* Agora testamos a subsequente se for, pronto imprima na tela o conteúdo entre elas */ while((c = getc(arquivo)) != '') { printf(%c,c); } } } } fclose(arquivo); return(0); } Se você não tiver dentro das tags do html uma coicidência da letra g e posteriormente a o ele vai imprimir corretamente, quer dizer ainda não testei acho que vai funcionar. Se quizer armazenar no lugar de printf(%c,c) coloca buffer[i] = c; declare uma variável static int i; no inicio do arquivo, e dentro do corpo do laço while de impressão coloque o seguinte: while((c = getc(arquivo))!=''){ i = 0; buffer[i] = c; i++; } Se o código não lhe interessar ou você preferir em script, hoje a noite eu olho lá em casa e lhe mostro o código em Script Bash como seria, mas só vou lhe postar amanhã pois a internet é mais barata. Pessoal, Como fazer para pegar dados de um arquivo especificando caracteres que vem antes e depois?? Exemplo: Tenho um arquivo texto com: tag1/tag tagab/tag tagZZ/tag Preciso retornar: 1abZZ Ou seja, preciso todos os dados de tag. Obrigado. Rubens -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]
Re: Dúvida Shell Script
Rubens, Fiz um script em php ha algum tempo atraz que faz exatamente isso, pega tudo que esta fora das tags . fiz essa função para utilizar em um script que pegava html do oracle e passava para html normal muito mais limpo abaixo a função // funcao para remover as tags function remove($tag) { if (stristr($tag,style)) return(); $boo = 1; while($boo) { $pos = strpos($tag,); if ($tag[0] == ) { $tag = substr($tag, $pos+1); } else { $boo = 0; } } $pos = strpos($tag,); $tag = substr($tag, 0,$pos); return($tag); } e esse eh o trecho que le o arquivo e chama a funcao linha por linha ? // Variaveis de Configurações // arquivo de origem $filename = juridica2.htm; // Fim das configurações // NÃO mexa nada a partir daqui // funcao q le o arquivo e grava na string $fd = fopen($filename, r); $filestring = fread($fd, filesize($filename)); fclose($fd); // Funcao q cria o array frase com 1 linha por registro $y = 0; $x = strlen($filestring);; for ($i=0;$i$x;$i++) { $frase[$y] .= $filestring[$i]; if ($filestring[$i] == \n) { $y++; } } $t_linhas = $y; $x = 0; $contador = 0; for ($x = 0;$x $t_linhas;$x++) { $tag = $frase[$x]; $tag2 = remove($tag); if ($tag2 == ) { $tag2 = Sem telefone; } if (strlen($tag2) 1) { $ok .= $tag2\n; $texto[$contador] = $tag2; $contador++; } } espero ter ajudado, abraco Felipe Roman ___ Felipe de Fraga Roman ACS / Publicidade ACS / Comunicação On Line Universidade Luterana do Brasil - www.ulbra.br [EMAIL PROTECTED] - Original Message - From: Rubens Saraiva Nogueira [EMAIL PROTECTED] To: debian-user-portuguese@lists.debian.org Sent: Wednesday, April 30, 2003 4:23 PM Subject: Dúvida Shell Script Pessoal, Como fazer para pegar dados de um arquivo especificando caracteres que vem antes e depois?? Exemplo: Tenho um arquivo texto com: tag1/tag tagab/tag tagZZ/tag Preciso retornar: 1abZZ Ou seja, preciso todos os dados de tag. Obrigado. Rubens -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]