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: Mon, 11 Aug 2003 14:29:06 -0000
User-agent: eGroups-EW/0.82

Marcio,

Desculpe a falha, o grep tambem consegue pesquisar variaveis (como no
exemplo abaixo)...
Obs.: recomendo utilizar aspas duplas (") envolvendo o argumento do grep.

Bye.

#---------------------------------------------------------------------

while read REGRA
do
if [ $(echo ${REGRA} | grep "${IP}") ]
then
   echo "\#${REGRA}" >> forward.masq
else
   echo "${REGRA}" >> forward.masq
fi
done < forward.teste

mv forward.masq forward.teste

#---------------------------------------------------------------------

--- Em address@hidden, "marcio_nei"
<marcio_costa@c...> escreveu
> Amigos, 
> Segui o script que enviaram, mas nao deu certo, vejam o passo a passo 
> que fiz.
> 
> Tenho no diretorio root, os 03 arquivos: forward.masq, forward,teste 
> e a (que é o script que vocês mandaram).
> 
> ##O conteúdo do forward.masq
> [root@root /root]# cat forward.masq
> $IPTABLESCMD -t nat -A MASQ -s 192.168.0.1/255.255.0.0 -d 0/0 -j 
> MASQUERADE
> $IPTABLESCMD -t nat -A MASQ -s 192.168.0.5/255.255.0.0 -d 0/0 -j 
> MASQUERADE
> $IPTABLESCMD -t nat -A MASQ -s 192.168.0.10/255.255.0.0 -d 0/0 -j 
> MASQUERADE
> ##O conteúdo do forward.teste
> [root@irc /root]# cat forward.teste
> $IPTABLESCMD -t nat -A MASQ -s 192.168.0.1/255.255.0.0 -d 0/0 -j 
> MASQUERADE
> $IPTABLESCMD -t nat -A MASQ -s 192.168.0.5/255.255.0.0 -d 0/0 -j 
> MASQUERADE
> $IPTABLESCMD -t nat -A MASQ -s 192.168.0.10/255.255.0.0 -d 0/0 -j 
> MASQUERADE
> ## a execução do a (script shell)
> [root@root /root]# ./a
> grep: opþÒo invßlida -- t
> Uso: grep [opþÒo]... padrÒo [arquivo]...
> Tente `grep --help' para mais informaþ§es.
> grep: opþÒo invßlida -- t
> Uso: grep [opþÒo]... padrÒo [arquivo]...
> Tente `grep --help' para mais informaþ§es.
> grep: opþÒo invßlida -- t
> Uso: grep [opþÒo]... padrÒo [arquivo]...
> Tente `grep --help' para mais informaþ§es.
> ## tentei visualizar o forward.masq, mas o script apagou-o
> [root@irc /root]# cat forward.masq
> cat: forward.masq: Arquivo ou diret¾rio nÒo encontrado
> ## Conteúdo forward.teste após a execuçao do script (nao alterou nada)
> [root@root /root]# cat forward.teste
> $IPTABLESCMD -t nat -A MASQ -s 192.168.0.1/255.255.0.0 -d 0/0 -j 
> MASQUERADE
> $IPTABLESCMD -t nat -A MASQ -s 192.168.0.5/255.255.0.0 -d 0/0 -j 
> MASQUERADE
> $IPTABLESCMD -t nat -A MASQ -s 192.168.0.10/255.255.0.0 -d 0/0 -j 
> MASQUERADE
> 
> ##conteúdo do a (script shell)
> ###############################################################
> [root@root /root]# cat a
> IP=192.168.0.5
> 
> rm forward.masq
> 
> while read REGRA
> do
> if [ $(grep ${IP} ${REGRA}) ]
> then
> echo "\#${REGRA}" >> forward.masq
> else
> echo "${REGRA}" >> forward.masq
> fi
> done < forward.teste
> 
> mv forward.masq forward.teste
> 
> [root@root /root]#
> ###############################################################
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> --- Em address@hidden, "leogildo_silva" 
> <leogildo_silva@y...> escreveu
> > 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]