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

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

Re: [shell-script] Comentar linha de arquivo com o sed


From: Guilherme Gall
Subject: Re: [shell-script] Comentar linha de arquivo com o sed
Date: Thu, 19 Jan 2012 11:08:04 -0200

Prezado Flávio,

Parece que você está confundindo-se com as aspas. Olha só o que
acontece quando uso aspas duplas:

$ cat teste
http_access allow vLAN_FAA_ACD_L01
http_access allow vLAN_FAA_ACD_L02
http_access allow vLAN_FAA_ACD_L03
http_access allow vLAN_FAA_ACD_WIF

$ echo $v_01
http_access allow vLAN_FAA_ACD_L01

$ sed "s/$v_01/#$v_01/g" teste
#http_access allow vLAN_FAA_ACD_L01
http_access allow vLAN_FAA_ACD_L02
http_access allow vLAN_FAA_ACD_L03
http_access allow vLAN_FAA_ACD_WIF

Usando aspas simples dentro da sua função, como você fez, o que você
passa para o sed é o seguinte:

- s/ literal, seguido pelo
- 1º, e apenas o 1º, parâmetro da função ($1), seguido por
- /# literal, seguido novamente pelo
- 1º parâmetro passado para a função ($1), seguido por
- /g literal

Colocando o echo no lugar do sed para você ver o que está acontecendo
dentro da função:

$ f(){ echo 's/'$1'/#'$1'/g'; }

$ f $v_01
s/http_access/#http_access/g

Dá uma olhada nesses materiais:

http://mywiki.wooledge.org/Quotes
http://mywiki.wooledge.org/BashGuide/Parameters

Espero ter ajudado,
--
Guilherme Magalhães Gall (GMGall)
GPG Public Key ID: 0F498058



Em 19 de janeiro de 2012 09:13, Flavio Alexandre Reis
<address@hidden> escreveu:
> Prezados,
>
>
> bom dia
>
> Estou criando um scriptr que posso me auxiliar a comentar linhas de um 
> detarminado arquivo... (squid.conf)
> Fiz alguns testes e com o sed e deram certo... porem agora em testes finais 
> nao deu certo con quando as linhas tem espaço... a seguir descrevo parte do 
> arquivo.conf e uma parte do script... se aguem puder me dar um help...
>
> trecho do squid.conf que tenho que comentar, irei passar a linha como 
> parametro de uma funcao...
>
>
>
> http_access allow vLAN_FAA_ACD_L01
> http_access allow vLAN_FAA_ACD_L02
> http_access allow vLAN_FAA_ACD_L03
> http_access allow vLAN_FAA_ACD_WIF
>
>
> #!/bin/bash
>
>   v_01='http_access allow vLAN_FAA_ACD_L01';
>   v_02='http_access allow vLAN_FAA_ACD_L02';
>   v_03='http_access allow vLAN_FAA_ACD_L03';
>
>   v_DATA=$(date +%Y%m%d)
>
>   function f_COMENTARIO(){
>     cp arq.conf $v_DATA.arq.conf
>     sed -e 's/'$1'/#'$1'/g' arq.conf  >> arq.conf_tmp
>     mv arq.conf arq.conf_old
>     mv arq.conf_tmp arq.conf
>
>     rm arq.conf_old
>   }
>
> f_COMENTARIO $v_01
>
> Porem do jeito que ta ai ele ta comentando todas as linhas, ele rta pegando 
> até o primeiro espaço...
>
> desde já agradeço a todos
>
>
> []s
>
>
> -------------------------------------
> Flávio Alexandre dos Reis
> address@hidden
> LPIC-1
> Linux user #481115
> Ubuntu user #24388
> Juiz de Fora - MG
>
> [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]