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 09:56:56 -0700 (PDT)

outra coisa que esqueci de falar César Vianna, essa solução as linha 
indesejadas  se o comentário estiver identado:

solução:
grep -v "^#" arquivo | grep -v "^$"

exemplo

#!/bin/bash
#este programa não faz nada
    #e não escreve nada
    echo "NADA"

depois de processar:

    #e não escreve nada
    echo "NADA"

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

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






 




    
                  Servir serve...

Mas se vc testar no código em IDl que mandei pra lista verá que não funcionará, 
pois o grep ou o sed não exclui os comentários identados, ou seja que tenham 
espaços ou tabs, por isso o mesmo código funcionará em uma linguagem e não em 
outras. Na teoria deveria funcionar em qualquer linguagem que use o mesmo 
método de comentário, um símbolo especial na frente da linha, era só trocar o 
símbolo. Mas não consegui fazer funcionar... 

Muito provavelmente deve ser pela minha falta de conhecimento em sed, grep e 
regex!!! =^$



Muito Obrigado

--- Em qui, 16/7/09, César Vianna <cesar.vianna@ gmail.com> escreveu:



De: César Vianna <cesar.vianna@ gmail.com>

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

Para: shell-script@ yahoogrupos. com.br

Data: Quinta-feira, 16 de Julho de 2009, 11:26



 



Não sei se entendi errado, mas não serve a alternativa abaixo?



O primeiro grep remove linhas que iniciam com comentário e o segundo as



linhas em branco



~# grep -v "^#" /etc/apache2/ apache2.conf| grep -v "^$"|wc -l



45



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



>



>



> os programas que estou usando para testar o contador de linhas "úteis"



>



> Programa bash



>



> #!/bin/bash



> #



> # Programa que cria aliases na quantidade necessária



> #



> # Para criar aliases a sintaxe é:



> # ./aliases.sh cria 1 2 (1 é a variação do terceiro octeto do IP e 2 a



> variação do quarto)



> # Para destruir aliases a sintaxe é:



> # ./aliases.sh destroi



>



> rede_base=168. 192



>



> mascara=255. 255.0.0



> contador=0



>



> if [ $1 == cria ]; then



>     echo "serão criados `expr $2 \* \( $3 + 1 \)` aliases"



>     sleep 3



>     for octeto_tres in `seq 1 $2`; do



>         for octeto_quatro in `seq 0 $3`; do



>             ifconfig eth0:$contador inet



> ${rede_base} .${octeto_ tres}.${octeto_ quatro} netmask $mascara



>             contador=$(expr $contador + 1)



>         done



>     done



> elif [ $1 == destroi ]; then



>     ifconfig eth0:0 down



> fi



>



> programa IDL



>



> pro grafico



>



> srf,'/mnt/proc026/ MOSAIC-00000968. univap2009. postgres/ dsm2.5/br090218_ 
> uva4kmco_ 001b1014_ 00000968. forward3_ dem_crs', dem



>



> srf,'/mnt/proc074/ denis/br090218_ uva4kmco2. 5_001b1014_ 00000463. forward4_ 
> dem_crs', dsm



>     ;Faz diferança



>     diff=dsm-dem



>     diffz=dem-dsm



>     ;Limpa as imagens de diferença



>     putdum,diff, 1000



>     putdum,diffz, 1000



>     ;Mostra a imagem de diferença



>     tvf,diffz,5, 5,-10,10



>     ;Calcula informação para gráficos



>     range=rebix( diff)



>     azimuth=rebiy( diff)



>     rangez=rebix( diffz)



>     azimuthz=rebiy( diffz)



>     ;Mostra gráficos



>     window,/free & !p.color=0



>     wset,33



>     plot,range,yrange= [-10,10], title='Range'



>     window,/free & !p.color=0



>     wset,34



>     plot,azimuth, yrange=[- 10,10],title= 'Azimuth'



>



>     for i=0, 100 do begin



>         print,"calculando range..."



>         wset,33



>         wait,3



>         plot,rangez, yrange=[- 10,10],title= 'Range'



>



>         print,"Phase Cal..."



>         print,"."



>         print,"...."



>         print,"..... .."



>         print,"..... ......"



>         print,"..... ......... "



>



>         for j=0, 100, 10 do begin



>             print,j,"%"



>             wait,1



>         endfor



>



>         print,"calculando azimuth..."



>         wset,34



>         wait,3



>         plot,azimuthz, yrange=[- 10,10],title= 'Azimuth'



>



>         print,"everything Ok!!!"



>         wset,33



>         wait,3



>         plot,range,yrange= [-10,10], title='Range'



>



>         print,"testing"



>         wset,34



>         wait,3



>         plot,azimuth, yrange=[- 10,10],title= 'Azimuth'



>     endfor



> end



>



> --- Em qui, 16/7/09, denis costa <deniscostadsc@ yahoo.com. br<deniscostadsc% 
> 40yahoo.com. br>>



> escreveu:



>



> De: denis costa <deniscostadsc@ yahoo.com. br <deniscostadsc% 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, 10:05



>



>



>



> 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|shellscr ipt|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 <jacsonrcsilva@ gmail.com> escreveu:



>



> De: Jeiks <jacsonrcsilva@ gmail.com>



>



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



>



> Para: shell-script@ yahoogrupos. com.br



>



> 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.maisbusca dos.yahoo. com



>



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



>



>



>



>



>



>



>



>



>



>



>



> ____________ _________ _________ _________ _________ _________ _



> 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]



>



>  



>



-- 



César Vianna



------------ -------



Prefira o que é positivo e múltiplo; a diferença à uniformidade; o fluxo às



unidades; os agenciamentos móveis aos sistemas.



Gilles Deleuze & Felix Guattari



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



        

         

        

        



        



        

        



____________ _________ _________ _________ _________ _________ _

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]




 

      

    
    
        
         
        
        








        


        
        


      
____________________________________________________________________________________
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]