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