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

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

Re: [shell-script] Relatorio de Quebra


From: Julio C. Neves
Subject: Re: [shell-script] Relatorio de Quebra
Date: Mon, 11 Jul 2011 12:36:56 -0300

Fala Jacson,
há qto tempo!...

Se vc prestar atenção, o teu while foi a 1ª sugestão dada pelo MrBits e ele
em seguida fez loas ao Cobol. De gozação, escrevi o one-liner que vc citou
para mostrar pq não tinha saudades do Cobol, mas frisei que a resposta com
while deveria ser mais performática já que só usa intrínseco (builtin).

Em tempo: para fazer em Cobol, calculo por alto (e no mínimo) o seguinte:
identification division - 1 linha - É obrigatória pelo menos o nome da
divisão;
environment division - 6 linhas - Para declarar o arquivo de entrada e a
impressora (se for para terminal, este número será bem maior);
data division (considerando só 3 campos/registro) - 12 linhas - Para
declarar os leiautes de entrada e saída;
procedure division - 10 linhas - Para a lógica.

Total 29. Mas como fiz todas as declarações e códigos mentalmente e sempre
puxando os valores para baixo, não creio que se faça isso em Cobol (ou Java)
em menos de 40 linhas.

Cordialmente,

Julio Neves
*Quer programar bem em Shell?
*

*Use este endereço de e-mail, o Skype ou ☎ (21)8112-9988 ☎*

*
*

**

*
*
My profiles: [image: Twitter] <http://twitter.com/juliobash>
Contact me: [image: Skype] julioneves1


Em 11 de julho de 2011 12:08, Jeiks <address@hidden> escreveu:

> **
>
>
> Opa,
> acompanhar essas discussões na lista é muito legal e a gente sempre
> aprende... :D
>
> Eu gostaria de estressar mais um pouco a thread...
>
> $ seq -w 27 | xargs -i echo campo{} | paste -d "" - - - > arq.teste
> > $ paste <(cut -c -7 arq.teste) <(cut -c 8-14 arq.teste) <(cut -c
> > 15- arq.teste) | xargs -L1 printf "%-10s %-10s %-10s\n"
> >
> > que tal:
>
> while read LINHA;do
> printf "%-10s %-10s %-10s\n" ${LINHA::7} ${LINHA:7:7} ${LINHA:14:7}
> done < arq.teste
>
> Bom, seria a leitura de linha por linha, mas evitaria a criação de três
> arquivos dinâmicos e da utilização de um subsheel... é melhor ou pior?
> Outra possibilidade:
>
> awk '{printf "%-10s %-10s %-10s\n", substr($1,0,7), substr($1,8,7),
> substr($1,15,7) }' arq.teste
>
> Já sobre posicionamento na tela, que tal:
>
> POS_LINHA=3
> POS_COLUNA=0
> while read LINHA;do
> printf "\033[$POS_LINHA;${POS_COLUNA}H %-10s %-10s %-10s\n"
> ${LINHA::7} ${LINHA:7:7} ${LINHA:14:7}
> let POS_LINHA++
> done < arq.teste
>
> ou:
>
> awk '{ linha=FNR+3;
> coluna=5;
> printf "\033[%d;%dH%-10s %-10s %-10s\n", linha, coluna,
> substr($1,0,7), substr($1,8,7), substr($1,15,7)
> }' arq.teste
>
> abraços
>
> --
> Jacson R. C. Silva
> http://jeiks.net
> http://lattes.cnpq.br/0637308986252382
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

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