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

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

Re: RES: [shell-script] abrir arquivo e incluir caracter


From: leogildo_silva
Subject: Re: RES: [shell-script] abrir arquivo e incluir caracter
Date: Sat, 09 Aug 2003 06:01:28 -0000
User-agent: eGroups-EW/0.82

Permitam me fazer algumas observacoes.

Concordo com o modelo proposto, porem, loops de arquivos em shell
custam caro, economize onde puder...

Este modelo pesquisa ${IP} em todo o registro, soh que em algumas
situacoes, eh recomendado avaliar um campo especifico, e neste caso
voce provavelmente utilizarah o  "cut"  ou  "awk"...  

Testar comandos (mesmos os mais simples) pode parecer um pouco chato,
mas pode te livrar de dores de cabeca...

Eis uma versao reduzida...

----------------------------------------------------------------------
...

IP=172.16.255.255

rm  /diretorio/iptable_output

while read REGRA
do
   if [ $(grep ${IP} ${REGRA}) ]
   then
      echo "\#${REGRA}" >> /diretorio/iptable_output
   else
      echo   "${REGRA}" >> /diretorio/iptable_output
   fi
done < /diretorio/iptable_input

mv /diretorio/iptable_output /diretorio/iptable_input

...
----------------------------------------------------------------------


--- Em address@hidden, "Rodolfo Villanova"
<rodolfo.villanova@t...> escreveu
> Marcio,
> 
> Achei um jeito de fazer o que tu queres sem precisar usar sed.
> Teste o script pra ver se funciona, pois não tive tempo de
testá-lo.
> Esse trecho exemplo inclui o caracter "sustenido" (ou "cerquinha",
ou "jogo-da-velha", ou "comentário", como queira!) no início da
linha
que possui o string que casa com o procurado:
> ...
> IP=172.16.255.255
> rm /diretorio/iptable_output
> while read REGRA
> do
>       echo $REGRA > /diretorio/REGRA.tmp
>       X="`grep $IP /diretorio/REGRA.tmp`"
>       [ -n $X ] && echo \#$REGRA >> /diretorio/iptable_output || echo
$REGRA >> /diretorio/iptable_output
> done < /diretorio/iptable_input
> mv /diretorio/iptable_output /diretorio/iptable_input
> rm /diretorio/REGRA.tmp
> ...
> 
> Fazer o processo inverso, ou seja, descomentar a linha desejada,
quero dizer, retirar o "sustenido" do início da linha... aí
deixo como
desafio pra ti exercitar as sinapses (ou "queimar as pestanas",
"oxidar fosfato", "espremer a cachola", sei lá, como queira!)
> 
> Não esqueçe de dar um retorno pra lista!
> 
> 
> Êxito na empreitada!
> 
> Rodolfo Villanova
> 
> 
> 
> 
> 
> 
> -----Mensagem original-----
> De: marcio_nei [mailto:marcio_costa@c...]
> Enviada em: sexta-feira, 8 de agosto de 2003 15:49
> Para: address@hidden
> Assunto: [shell-script] abrir arquivo e incluir caracter
> 
> 
> Alguém sabe como eu posso otimizar o script abaixo?
> Preciso que ele faça o seguinte:
> Ao executa-lo, irei consultar uma palavra no arquivo tal e caso ele 
> econtre a palavra, irá incluir um caracter no início da linha
onde 
> está a mesma.
> 
> O ideal é o programa ler o arquivo e adicionar o caracter no
início 
> da linha.
> -------------------------------------------------------------------
> #!/bin/bash
> # Menu de Administracao remota
> Principal()
> { echo "=================================================="
> echo " Menu de Administracao remota" 
> echo "=================================================="
> echo "Opções:"
> echo
> echo "1. Bloquear terminal" 
> echo "2. Liberar terminal"
> echo "3. Sair do Programa"
> echo
> echo -n "Qual a opçao que deseja? "
> read opcao
> case $opcao in
> 1) bloquear ;;
> 2) liberar ;;
> 3) exit ;;
> *) echo "Opçao desconhecida." ; echo ; Principal ;;
> esac
> }
> # Funçao Adicionar (1)
> bloquear()
> {
> clear
> echo -n "Qual o ip do cliente?"
> read nome
> ./travaradio
> Principal
> }
> # Funçao Adicionar (2)
> liberar()
> {
> clear
> # echo -n "Qual o ip do cliente?"
> # read nome
> ./liberaterminal
> Principal
> }
> # Executa o menu principal
> Principal
> ------------------------------------------------------------------
> 
> 
> 
> 
> ------------------------------------------------
---------------------
> 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.listasdiscussao.cjb.net
> ------------------------------------------------
---------------------
>  
> 
> Seu uso do Yahoo! Grupos é sujeito às regras descritas em:
http://br.yahoo.com/info/utos.html


reply via email to

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