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

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

Re: [shell-script] Usar teste para, caso verdadeiro, gerar variável e ro


From: Eri Ramos Bastos
Subject: Re: [shell-script] Usar teste para, caso verdadeiro, gerar variável e rodar comandos que usam a variável
Date: Mon, 18 Oct 2010 20:06:27 -0300

Só um patch rápido:

http://pastebin.com/KjtAJ4dL

[]'s
Eri Ramos Bastos

2010/10/18 Helton Moraes <address@hidden>:
> Caros colegas
>
> Hoje criei um programinha pra facilitar minha vida de
> procurador-de-coisas-em-um-monte-de-pdf. O programa procura recursivamente
> todos os pdfs e dá uma saída formatada, usando o comando pdftotext do pacote
> xpdf-utils.
>
> Invocação(exemplo): $ grepdf empowerment
>
> # 2009.pdf:
> ==========
> Empowerment. University of California Press, Berkeley.8.
>
>
> # Medicalisation of Disability.pdf:
> ==================================
> political empowerment of disabled people as a group and not through
>
>
> # Wheelchairs - from engineering to inclusive design - Include 2005.pdf:
> =======================================================================
> Personas, narratives and empowerment: the inclusive design of `away from
> Empowerment games: participatory design exercises for sustainable public
> Personas, narratives and empowerment: the inclusive design
> Empowerment games: participatory design exercises for sustainable
> Design process, Empowerment Games, designed through collaboration between
>
>
> Não consegui enxugar alguns pontos, apesar de ter dado uma lida nos meus
> amansa-burros:
>
>   1. Como evitar ter de escrever e ler o arquivo 'saida'?
>   2. Como aproveitar a passada  // pdftotext -q -raw -nopgbrk "$arquivo" -
>   | grep -i "$1" //  para, SOMENTE SE POSITIVA (exit status do grep = 0),
>   criar a variável $busca e rodar os outros comandos?
>   3. Alguma sugestão para o 'sublinhado-com-um-monte-de-sinais-de-igual'
>   que não seja usando laço?
>   4. Teria como fazer os termos de busca ficarem coloridos, como
>   aconteceria no grep 'limpo'?
>   5. Será que o pdftotext é o melhor programa para fazer isso? Haveria
>   algum modo nativo para melhorar a portabilidade?
>
> Não que o comando não esteja funcionando satisfatoriamente (bem mais rápido
> do que o mecanismo equivalente do Adobe Acrobat, na verdade), mas tenho
> visto que a comunidade Shell Script valoriza a "elegância" e a eficiência da
> coisa, e como estou aprendendo, não haveria oportunidade melhor para
> aprender direito do que incorporar boas práticas. Também fiquei satisfeito
> com o fato de o código ter ficado suficientemente legível.
>
> Obrigado pela ajuda, espero que, independente de mais nada, o script possa
> ser útil para mais gente.
>
> Helton
>
> ==========================
> #!/bin/bash
>
> echo ""
> find -type f -name '*.pdf' -print > saida
> while read arquivo
> do
>    busca=$(pdftotext -q -raw -nopgbrk "$arquivo" - | grep -i "$1")
>    if [ "$busca" ]
>    then
>        nome=$(echo "$arquivo" | sed -r 's:.*/([^/]*)$:\1:g')
>        count=$(echo "$nome" | wc -c)
>        linha=$(for n in $(seq 0 "$count"); do echo -n "="; done; echo -e
> "\n")
>        echo -e "# $nome:\n$linha\n$busca\n\n"
>    fi
> done < saida
>
> ==========================
>
>
> [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]