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

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

Re: [shell-script] Diversão


From: Tiago Barcellos Peczenyj
Subject: Re: [shell-script] Diversão
Date: Wed, 7 Feb 2007 15:04:54 -0200

Bom...

pensando um pouco mais bolei as seguinte solucoes

via GREP (nao traz todas as ocorrencias... por que posso ter outro the
a menos de 20 caracteres)

tr -d '\n' < electricity.txt | grep -oE '.{20}the.{20}'

via AWK (ficou bem bacana, fiz uma bruxaria...)

tr -d '\n' < electricity.txt | awk '{
for(;;){ # laço infinito
 p=index(substr($0,add+1),"the");
 if(p==0) break; add += p;      
 printf "%43s\n",substr($0,add-20,43);
}
}'

a ideia do awk é: eu procuro a posição de um padrao. quando encontro,
eu vou imprimir 20 caracteres antes e 23 depois da posição desse
padrão. ai vou procurar novamente, mas adiante, por isso o meu index
recebe um substr, no primeiro ciclo, max será 0, então eu procuro em
toda a $0.

estou usando tr -d '\n' para ficar mais compacto o resultado, o visual
fica melhor IMHO.

acho q pode ser particularmente util este tipo ideia em arquivos de
log, onde posso ter varios tipos de mensagens de erro, em diversas
posições.

[]´s Tiago

On 2/7/07, Tiago Barcellos Peczenyj <address@hidden> wrote:
Miranda, eu fiz assim:

tr -d '\n' < electricity.txt  | sed -n
's/.\{20\}the.\{20\}/\n&/g;/the/p' | cut -c1-43

é claro que existem outras formas melhores ate, mas esta ficou bonita
(mas não completa).

tentei com awk usando substr mas ficou uma maçaroca

On 2/7/07, Miranda <address@hidden> wrote:
> Estava praticando tutorial de uma outra linguagem de programação
> e deparei com esse exercício que achei bem interessante
> e que levei a cabo usando essa linguagem.
> Se alguém quiser usar shell-script para fazer será um exercício
> interessante ,creio eu.
> Dado um texto :
> que você pode usar esse aqui , que é legal :
> http://www.comp.leeds.ac.uk/Perl/Misc/electricity.txt
> fazer um script que tenha como saida algo como aqui :
>
> discovered (this is the truth) that when he
> t kinds of metal to the leg of a frog, an e
> rrent developed and the frog's leg kicked,
>  longer attached to the frog, which was dea
> normous advances in the field of amphibian
> ch it hop back into the pond -- almost.  Bu
> ond -- almost.  But the greatest Electrical
> ectrical Pioneer of them all was Thomas Edi
>
> Que mostra parte das linhas em que aparece o padrao   "the"
> alinhado na coluna.
>
> seria interessante também para testar, que o padrao
> seja passado como parametro para o programa.
> Alguém tem um tempinho para perder(ganhar) ?  :o)
>
> P.S.:
> Se alguém quiser a página onde se encontra esse exercício
> com dicas , mas da outra linguagem , só mandar um PVT.
>
>
>
>
>
> ---------------------------------------------------------------------
> 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
>
>
>


--
Tiago B Peczenyj
Linux User #405772

# cd /pub
# more beer



--
Tiago B Peczenyj
Linux User #405772

# cd /pub
# more beer


reply via email to

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