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

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

Re: [shell-script] sed script exclui comentários


From: denis costa
Subject: Re: [shell-script] sed script exclui comentários
Date: Thu, 16 Jul 2009 06:05:43 -0700 (PDT)

O esboço do programa está assim mas, quando vai contabilizar as linha "úteis" 
em idl ele não exclui da contagem as linha em branco isso só em IDL.

#!/bin/bash

linguagem=$(echo $1 | tr 'A-Z' 'a-z')

case $linguagem in
    bash|shell|shellscript|sh|ksh|csh)
        cat $2  | sed 's/#.*$//;/^$/d' | wc -l
    ;;

    idl)
        cat $2  | sed 's/;.*$//;/^$/d' | wc -l
    ;;

    c)
        echo "Calma! Ainda não pensei em C"
    ;;

    *)
        echo "Linguagem não suportada."
    ;;
esac




--- Em qui, 16/7/09, Jeiks <address@hidden> escreveu:

De: Jeiks <address@hidden>
Assunto: Re: [shell-script] sed script exclui comentários
Para: address@hidden
Data: Quinta-feira, 16 de Julho de 2009, 9:57






 




    
                  o wc tah esquisito.. nao entendi o pq de estar errado



quanto a outra dúvida, para comentários tanto com "#" quanto ";", use:

sed 's/[#;].*$// ;/^$/d'



abs



2009/7/16 denis costa <deniscostadsc@ yahoo.com. br>



>

>

> essa soluão funciona perfeitamente em shell script:

> sed 's/#.*$//;/^ $/d'

>

> mas como faria para usar o menos código em uma outra linguagem que usa

> ponto e virgula (;) para comentário:

> sed 's/\;.*$//;/ ^$/d'

>

> essa solução acima até funcionaou mas não exclui as linhas em branco

>

> --- Em qui, 16/7/09, jimmy <ronaldo_tgz@ yahoo.com. br<ronaldo_tgz% 
> 40yahoo.com. br>>

> escreveu:

>

> De: jimmy <ronaldo_tgz@ yahoo.com. br <ronaldo_tgz% 40yahoo.com. br>>

>

> Assunto: Re: [shell-script] sed script exclui comentários

> Para: shell-script@ yahoogrupos. com.br <shell-script% 40yahoogrupos. com.br>

> Data: Quinta-feira, 16 de Julho de 2009, 9:16

>

>

>

> On Thu, Jul 16, 2009 at 03:55:01AM -0700, denis costa wrote:

>

> > Olá a todos eu tenho um problema em um script...

>

> >

>

> > estava fazendo um script que contabilizava as linha de códigos-fontes

> (excluindo linha em branco e comentários)

>

> > então fiz em sed para apagar o que começa com comentário e apagar as

> linhas em branco:

>

> >

>

> > sed '/^#/d;/^$/d'

>

> >

>

> > mas assim ele só apaga no ínicio da linha, não apaga se tiver um espao ou

> tab.

>

> >

>

> > outra solução era apagar do comentário até o fim da linha, mas esse

> também apaga a linha toda:

>

> >

>

> > sed '/#/,/$/d;/^ $/d'

>

> >

>

> > Ou seja caso tenha um comentário após uma linha de código essa será

> excluída da contagem final.

>

> >

>

> > Por favor me ajudem com o complexíssimo( sic) sed, pelo menos pra mim.

>

> >

>

> > Desde já agradeço a todos...

>

> >

>

> > E parabéns pela qualidade da lista a todos!!!

>

> >

>

> > Um abraço

>

> >

>

> > ------------ --------- --------- ------

>

> com o sed tente fazer:

>

> $ sed '/^\s*\(#\|$ \)/d;' arquivo

>

> ou

>

> $ sed '/^\s*[^#]\w/ !d' arquivo

>

> mas já que você quer contar:

>

> $ grep -E -c '^\s*[^#]\w' arquivo

>

> --

>

> "Não manejo bem as palavras

>

> Mas manipulo bem as strings."

>

> ------------ --------- ---------

>

> "Cada um usa a ferramenta que merece."

>

> ------------ --------- ---------

>

>

>

>

>

>

>

>

>

>

>

> ____________ _________ _________ _________ _________ _________ _

> Veja quais são os assuntos do momento no Yahoo! +Buscados

> http://br.maisbusca dos.yahoo. com

>

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

>

>  

>



-- 

Jacson R. C. Silva



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




 

      

    
    
        
         
        
        








        


        
        


      
____________________________________________________________________________________
Veja quais são os assuntos do momento no Yahoo! +Buscados
http://br.maisbuscados.yahoo.com

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



reply via email to

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