[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
- abrir arquivo e incluir caracter, marcio_nei, 2003/08/08
- RES: [shell-script] abrir arquivo e incluir caracter, Rodolfo Villanova, 2003/08/08
- Re: RES: [shell-script] abrir arquivo e incluir caracter, leogildo_silva, 2003/08/09
- RES: RES: [shell-script] abrir arquivo e incluir caracter, Rodolfo Villanova, 2003/08/11
- Re: RES: RES: [shell-script] abrir arquivo e incluir caracter, leogildo_silva, 2003/08/11
- Re: RES: RES: [shell-script] abrir arquivo e incluir caracter, marcio_costa, 2003/08/12
- RES: [shell-script] abrir arquivo e incluir caracter, Rodolfo Villanova, 2003/08/12
- Re: RES: RES: [shell-script] abrir arquivo e incluir caracter, leogildo_silva, 2003/08/12