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 <[EMAIL PROTECTED]> 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 [EMAIL PROTECTED]:~$ ./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 <[EMAIL PROTECTED]> 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: [EMAIL PROTECTED] > ---------------------------------------------------------- > 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
