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

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

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


From: Rodolfo Villanova
Subject: RES: RES: [shell-script] abrir arquivo e incluir caracter
Date: Mon, 11 Aug 2003 10:41:42 -0300

Isso vai ao encontro do que informei em mensagem anterior: não é possivel 
executar o grep se não for definido um arquivo sobre o qual se quer fazer a 
filtragem.

Teste o script que te enviei que acredito deva funcionar.

Como a script não envolve muito tempo de processamento, eventuais problemas de 
performance devem ser insignificantes em relação ao tempo de resposta.

Rodolfo Villanova

-----Mensagem original-----
De: marcio_nei [mailto:address@hidden]
Enviada em: segunda-feira, 11 de agosto de 2003 10:07
Para: address@hidden
Assunto: Re: RES: [shell-script] abrir arquivo e incluir caracter


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



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