Alex <[EMAIL PROTECTED]> scria la data de 12 Decembrie 2005:
> On Monday 12 December 2005 11:54, Dizzy wrote:
> > On Monday 12 December 2005 11:21, Mugurel Sumanariu wrote:
> > > On Mon, December 12, 2005 10:52 am, Alex wrote:
> > > > Am un script care la un moment dat face ceva de genul:
> > > >
> > > > FILE="allowed.txt"
> > > > while read IP;
> > > >  do
> > > >  $IPTABLES -A ... -s $IP --dport abcd -j ACCEPT
> > > >  done < $FILE
> > > >
> > > > Ceea ce vreau eu acum este ca in allowed.txt sa pot
> > > > introduce si comentarii,
> > > > in afara de liniile legitime care contin adresele de IP.
> > > > Cum instruiesc bash-ul sa ignore liniile care incep cu #
> > > > in fisierul allowed.txt cind parcurg ciclul while de mai
> > > > sus?
> > > >
> > > > Alex
> > >
> > > #!/bin/sh
> > > ipuri=`/bin/cat /path/allowed.txt|grep -v "#"`
> > > for i in $ipuri; do
> > >   $IPTABLES -A... -s $i -j ACCEPT
> > > done
> > >
> > > comentariile pui cu # in fata...
> >
> > Problema e ca atunci cand ai si comentarii la mijloc comanda
> > data de tine va filtra si acele linii (omul a precizat ca
> > vrea sa elimine liniile cu comentarii in fata nu ca '#' daca
> > e prezent e prezent DOAR in fata).
> >
> > Deci grep -v '^#' instead.
> 
> Da, mersi, m-am oprit asupra variantei cu for. Sincer sa fiu, as fi
> dorit mai mult varianta cu while (chestie de modificare scripturi pe
> mai multe echipamente care au fost scrise by default cu while), dar nu
> am reusit sa pun conditia de filtrare sugerata de Mihai nici in ruptul
> capului:

        grep -v '^(#|[  ]*$)' "$FILE" | {
          while read IP; do
            echo $IP
          done
        }

    Sau daca vrei comentarii si la sfarsitul liniei:

        sed 's/#.*//; /^[       ]*$/d' "$FILE" | {
          while read IP; do
            echo $IP
          done
        }

([...] contin cate un spatiu si un tab).

    Salutari,

    Liviu Daia

-- 
Dr. Liviu Daia                                  http://www.imar.ro/~daia

_______________________________________________
RLUG mailing list
[email protected]
http://lists.lug.ro/mailman/listinfo/rlug

Raspunde prin e-mail lui