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

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

Re: [shell-script] Remover 3 linhas referentes a uma determinada referen


From: billpp
Subject: Re: [shell-script] Remover 3 linhas referentes a uma determinada referencia
Date: Tue, 22 Apr 2008 13:43:25 -0300

Um one-liner:


linux-3gau:~ # cat test.txt
#Cliente A
ABC
DEF

#Cliente B
ASLKJ
ALKJJ

#Cliente A
AHAEHAH
HAEhAEh

linux-3gau:~ # ed test.txt <<<$'g/^#Cliente\ A/+1,+2s/^/#/\nw\nq'
72
76
linux-3gau:~ # cat test.txt 
#Cliente A
#ABC
#DEF

#Cliente B
ASLKJ
ALKJJ

#Cliente A
#AHAEHAH
#HAEhAEh

linux-3gau:~ # ed test.txt <<<$'g/^#Cliente\ A/+1,+2s/^#//\nw\nq'
76
72
linux-3gau:~ # cat test.txt 
#Cliente A
ABC
DEF

#Cliente B
ASLKJ
ALKJJ

#Cliente A
AHAEHAH
HAEhAEh

linux-3gau:~ # ed -s test.txt <<<$'g/^#Cliente\ A/+1,+2s/^#//\nw\nq'
linux-3gau:~ # cat test.txt 
#Cliente A
ABC
DEF

#Cliente B
ASLKJ
ALKJJ

#Cliente A
AHAEHAH
HAEhAEh

linux-3gau:~ # 

PS: o -s ali do ed eh soh pra nao exibir nada na tela...

Acho que nao tem o que explicar.. eh uma simples regex, usando o ed, e com 
conceitos que ja foram bastante batidos na lista.. 

--

Flavio do Carmo Junior aka waKKu
#bash-br @ irc.freenode.net


On 4/22/08, Reinaldo de Carvalho <address@hidden> wrote:
Solução padrão das aulas de portugol da tia maria do maternal :P

O algoritmo é feio pois a padronização usada foi ineficiente.

#!/bin/bash

flag=False
while read line ; do
if [ $flag == 'True' ] ; then
if [ -z "$line" ] ; then
flag=False
echo
else
echo \# $line
fi
else
echo $line
fi
if [ "$line" == "$1" ] ; then
flag=True
fi
done < x.txt

rei@linux:~$ ./tt.sh '# Cliente B'

# Cliente A
iptables xxxxxxxxxx xxxxxxxxxx
iptables xxxxxxxxxx xxxxxxxxxx

# Cliente B
# iptables xxxxxxxxxx xxxxxxxxxx
# iptables xxxxxxxxxx xxxxxxxxxx

# Cliente C
iptables xxxxxxxxxx xxxxxxxxxx
iptables xxxxxxxxxx xxxxxxxxxx

-- 
Reinaldo Carvalho

On 4/22/08, xiss_break <address@hidden> wrote:
> Olá pessoal, gostaria de obter a ajuda de voces com referencia a um
> determinado problema, exemplo:
>
> # Cliente: A
> iptables -A wireless -s 192.100.100.3 -m mac \
> --mac-source 00:00:00:00:00:00 -j RETURN
>
> Bom, preciso criar um script que receba o nome de um determinado
> cliente e faça a busca em um arquivo buscando referencia a este
> cliente (# Cliente: A) e logo que encontrar comente a 2 próximas
> linhas. Deixando claro que essa referência pode de repetir no mesmo
> arquivo e nesse caso todas as 2 próximas linhas também devem serem
> comentadas.
>
>
> Desde já agradeço a vocês.
>
>
> ------------------------------------
>
> ----------------------------------------------------------
> 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.listas-discussao.cjb.net
> ----------------------------------------------------------
> Servidor Newsgroup da lista: news.gmane.org
> Grupo: gmane.org.user-groups.programming.shell.brazil
>
> Links do Yahoo! Grupos
>
>
>

http://sourceforge.net/projects/korreio
http://sourceforge.net/projects/kontroller
http://sourceforge.net/projects/phptcadmin
http://sourceforge.net/projects/python-cyrus



reply via email to

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