[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:34:15 -0300 |
Leogildo,
Em plano teórico concordo com algumas observações que levantaste.
Na prática, levanto duas ressalvas:
1) Segundo observações de listeiros mais experientes, o uso do awk justifica-se
quando o custo de carregá-lo em memória (seu tamanho é significativo) compensa
a rapidez no tratamento de seu objetivo. Então, a melhor escolha deve passar
pela cronometragem das execuções e compará-las;
2) O único teste que fiz (ambientes kron Shell True64 e SunOs) foi justamente
utilizar o "grep" para filtrar uma linha lida pelo "read"; mas deu erro, pois o
grep só aceita fazer a pesquisa se conseguir abrir um arquivo definido no
segundo parâmetro. Não sei se em bash do Linux funciona; se sim, beleza, é isso
aí!
Grato,
Rodolfo Villanova
-----Mensagem original-----
De: leogildo_silva [mailto:address@hidden]
Enviada em: sábado, 9 de agosto de 2003 03:01
Para: address@hidden
Assunto: Re: RES: [shell-script] abrir arquivo e incluir caracter
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 <=
- 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