[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