shell-script-pt
[Top][All Lists]
Advanced

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

RE: [shell-script] Duvida


From: MrBiTs
Subject: RE: [shell-script] Duvida
Date: Fri, 26 Nov 2004 09:42:48 -0200

KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
KKKKKK

ELA DEIXA ????????

Voce é um cara de sorte, entao...

Qqr duvida, pergunte... 

-----Original Message-----
From: SleepWalker [mailto:address@hidden] 
Sent: Friday, November 26, 2004 9:11 AM
To: address@hidden
Subject: Re: [shell-script] Duvida


Bom... mais uma vez obrigado pela ajuda!!

Acho melhor eu comecar arranjar algumas desculpas entao para explicar para
minha futura esposa pq estou no computador as 23:40 e noa na cama
hehehehheheeh

Falow
[]´s

MrBiTs wrote:

> > Alguem ai me diz o significado desses comando:
> > "diff -y"
> > "--suppress-common-lines"
> > " tr -d '\011' tr -d ' ' "
> > Eu perguntei pra pessoa que me ajudou nesse script mas acho q ela 
> > noa ta online no momento... se alguem ai on line puder me dizer...
> > agradeço
>
> Pois é... depois que vc casa, fica meio complicado explicar para a esposa
por que voce esta no computador e nao na cama às 23:48. É o preço que se
paga por nao ser onipresente nem ter um motor de dobra para andar em Warp
10.
>
> Vamos la: extraidos da fonte:
>
> man diff nos diz que:
>
>        diff - compara arquivos linha a linha
>
> -y  --side-by-side
>               Saida em duas colunas
>
> --suppress-common-lines
>               Nao mostra linhas em comum
>
> Para uma melhor compreensao, desmembramos o comando: Entao, la naquele seu
problema original, temos:
>
> $ diff -y --suppress-common-lines frutas1.txt frutas2.txt
> carambola                                                     | cagambola
> cupuacu                                                       | cupuassu
> manga                                                         | mango
>
> O diff comparou os dois arquivos, o -y formatou a saida em duas colunas e
o --suppress-common-lines mostrou somente onde os arquivos estao diferentes.
O problema dessa saida é que ela esta formatada com tabs e espacos.
>
> Entao vem a segunda parte do comando
>
> tr -d '\011' | tr -d ' '
>
> De novo, direto da fonte: man tr nos diz que:
>
> tr - traduz ou apaga caracteres
>
> -d, --delete
>               apaga caracteres, sem traduzi-los
>
> entao, tr -d '\011' apaga o caracter octal TAB, que é o caracter gerado
pelo pressionamento da tecla TAB e tr -d ' ' apaga os espacos.
>
> Voce sabe que o | (pipe) "canaliza" a saida de um comando para o outro,
certo ?
> Entao, se eu faco
>
> diff -y --suppress-common-lines frutas1.txt frutas2.txt | tr -d '\011' |
tr -d ' '
>
> estou dizendo ao sistema para comparar frutas1 e frutas2, mostrando
somente os "registros dissonantes" ( Minority Report, alguem viu ??? ) em
duas colunas. Pegue essa saida e  apague dela os TAB (\011) . Pegue essa
segunda saida e apague dela os espaços. Dai vc tem  o resultado:
>
> carambola|cagambola
> cupuacu|cupuassu
> manga|mango
>
> Temos entao um caso tipico de registros delimitados. O nosso delimitador
ai, chamado em alguns lugares de FS ( Field Separator ), é o |.
>
> Como tenho 3 registros, esta ótimo para gerar um laco rapido, ler 
> registro a registro e formatar essa saida do jeito que eu quero. Entao 
> vem o laco for do script, atribuindo a uma variavel a linha 
> carambola|cagambola. Vamos chama-la de $linha
>
> echo $linha vai me mostrar exatamente o carambola|cagambola. Sabendo que o
| ( comando de shell; nao confunda com o seu FS ) canaliza os resultados de
um comando para outro, temos:
>
> echo $linha | cut -d "|" -f 1
>
> Estamos dizendo: ecoe, imprima o conteudo da variavel linha 
> (carambola|cagambola) e corte-o pelo |, mostrando somente o campo 1, 
> que me da carambola. Similarmente,
>
> echo $linha | cut -d "|" -f 2 me devolve a palavra cagambola.
>
> Acho que deu uma luz, nao foi ?
>
> Dica de sucesso: sabendo agora que o | canaliza resultados, repita os
comandos do script EM SEPARADO, para voce visualizar a saida e o que esta
acontecendo durante o processamento.  Repita isso à exaustao, mas nao deixe
de entender. E aproveite para ler as man pages do diff, do tr e de todos os
comandos existentes em /bin, /sbin, /usr/bin e /usr/sbin e, eventualmente,
os existentes em /usr/local/bin e /usr/local/sbin ( se existirem ). Man
pages podem vir a ser suas melhores amigas.
>
> Depois de compreendida essa estrutura mais simplista, de comandos em
separado, voce pode passar para o Lado Negro da Força, e fazer as magias
negras que bruxos como o Julio e o Aurélio fazem.
>
> Um abraço
>
> [As partes desta mensagem que não continham texto foram removidas]
>
> ---------------------------------------------------------------------
> Esta lista não admite a abordagem de outras liguagens de programação, como
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
aviso.
> ---------------------------------------------------------------------
> Sair da lista: address@hidden
> ---------------------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em 
> http://www.listas-discussao.cjb.net
> ---------------------------------------------------------------------
>
> Links do Yahoo! Grupos
>
>
>
>
>



---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
aviso.
---------------------------------------------------------------------
Sair da lista: address@hidden
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
 
Links do Yahoo! Grupos




 




Esta mensagem foi verificada pelo E-mail Protegido Terra.
Scan engine: McAfee VirusScan / Atualizado em 24/11/2004 / Versão: 4.3.20
(10.21) - Dat 4410 Proteja o seu e-mail Terra:
http://www.emailprotegido.terra.com.br/

E-mail classificado pelo Identificador de Spam Inteligente Terra.
Para alterar a categoria classificada, visite
http://www.terra.com.br/centralunificada/emailprotegido/imail/imail.cgi?+_u=
mrbits&_l=1,1101467521.500948.501.gravatal.terra.com.br,7884,Des15,Des15



reply via email to

[Prev in Thread] Current Thread [Next in Thread]