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

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

RES: [shell-script] melhorar script awk


From: Emerson Domingues Souto - H2M
Subject: RES: [shell-script] melhorar script awk
Date: Fri, 22 Jun 2012 18:00:59 -0300

Agora sim ..... muito bom a parte do ^M
Mas, em alguns casos ele come o último pipe .... com o awk toda linha termina 
com pipe:

Com awk
A|||
A|B||
A|B|C|

Com sed
A||
A|B|
A|B|C|


Emerson Domingues Souto
Tecnologia da Informação
Marítima Seguros S/A
Fone: 11 3156-1017


> -----Mensagem original-----
> De: address@hidden [mailto:shell-
> address@hidden] Em nome de Julio C. Neves
> Enviada em: sexta-feira, 22 de junho de 2012 17:49
> Para: address@hidden
> Assunto: Re: [shell-script] melhorar script awk
> 
> Não sei o que houve, mas encaminhei a linha totalmente errada. Aí vai
> novamente:
> 
> $ echo "$(sed 's/;/|/g;s/\r//;s/$/|||||||||||||||||/' < $1 | cut -f-$2 
> -d'|')|"
> 
> O sed troca os (;) por (|), tira os carriage return (^M) microsoftianos e mete
> um monte de (|) no final. Depois é só pegar os $2 primeiros pedaços (com
> relação aos |) e correr para o abraço.
> 
> Abcs,
> Julio
> 
> *
> *
> 
> 
> 
> Em 22 de junho de 2012 16:53, Emerson Domingues Souto - H2M <
> address@hidden> escreveu:
> 
> > **
> >
> >
> > Julio,
> >
> > O comando tá dando erro:
> >
> > script.sh: 0403-057 Syntax error at line 1 : `<' is not expected.
> >
> > Rsrs, eu não entendi o que esse comando faz, vc pode dar uma
> > explicação pra gente ?
> > Vlw,
> >
> > Emerson Domingues Souto
> > Tecnologia da Informação
> > Marítima Seguros S/A
> > Fone: 11 3156-1017
> >
> > > -----Mensagem original-----
> > > De: address@hidden [mailto:shell-
> > > address@hidden] Em nome de Julio C. Neves Enviada em:
> > > sexta-feira, 22 de junho de 2012 15:49
> > > Para: address@hidden
> > > Assunto: Re: [shell-script] melhorar script awk
> > >
> > > Só pra fazer um one liner.... ;)
> > >
> > > $ echo "$(sed 's/;/|/g;s/\r//;s/$/|||||||||||||||||/' <<< $1 cut
> > > -f-$2 - d'|')|"
> > >
> > > Abcs,
> > > Julio
> > >
> > > *
> > > *
> > >
> > >
> > >
> > > Em 22 de junho de 2012 12:02, Emerson Domingues Souto - H2M <
> > > address@hidden> escreveu:
> > >
> > > > **
> > > >
> > > >
> > > > Pessoal,
> > > >
> > > > Eu tenho o script abaixo que recebe na entrada: nome_de_arquivo e
> > > > quantidade_de_pipes.
> > > >
> > > > A saída é o conteúdo do arquivo colocando ou excluindo em cada
> > > > linha a quantidade de pipes do parâmetro de entrada.
> > > >
> > > > Ah, o script também substitui os ";" por "|"
> > > >
> > > > Eu gostaria de substituir o while por um for e deixar o código
> > > > mais enxuto, isso é possível ?
> > > >
> > > > QTD_PIPE=$2
> > > >
> > > > sed 's/;/|/g' $1 | sed 's/^M//g' | awk -F"|" -vOFS="|" '{ ATUAL =
> > > > 0; QTD_PIPE = '$QTD_PIPE'; while (ATUAL < QTD_PIPE) { ATUAL ++;
> > > > printf($ATUAL) "|";
> > > > }
> > > > printf "\n";
> > > > }'
> > > >
> > > > Exemplo de como funciona o script:
> > > >
> > > > cat arquivo
> > > >
> > > > A;
> > > >
> > > > A;B
> > > >
> > > > A;B;C;D;E
> > > >
> > > > script.sh arquivo 3
> > > >
> > > > A|||
> > > >
> > > > A|B||
> > > >
> > > > A|B|C|
> > > >
> > > > Emerson Domingues Souto
> > > >
> > > > Tecnologia da Informação
> > > >
> > > > Marítima Seguros S/A
> > > >
> > > > Fone: 11 3156-1017
> > > >
> > > > [As partes desta mensagem que não continham texto foram
> removidas]
> > > >
> > > >
> > > >
> > >
> > >
> > > [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
> > > ----------------------------------------------------------
> > > Servidor Newsgroup da lista: news.gmane.org
> > > Grupo: gmane.org.user-groups.programming.shell.brazil
> > >
> > > Links do Yahoo! Grupos
> > >
> >
> >
> >
> 
> 
> [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
> ---------------------------------------------------------------------
> Servidor Newsgroup da lista: news.gmane.org
> Grupo: gmane.org.user-groups.programming.shell.brazil
> 
> Links do Yahoo! Grupos
> 



reply via email to

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