[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