Wagner Klein da Silva, @ 01:33:

> On Mon, 9 Apr 2001, Marcio Merlone wrote:
>
> > #/bin/marciogol
> > Para cada linha em ARQUIVO faça
> >     script_em_perl $2
> >     script_em_bash $1
> > Proxima linha

> > , sendo que o arquivo encontra-se no formato
> > $1,$2
> > $1,$2
> > $1,$2

> $1 e $2 podem ter espacos?
> Se não podem:
>
>       cut -d, <arquivo |
>           while read x1 x2
>           do
>               script_perl $x2
>               script_bash $x1
>           done

> Se podem ter espaços:
>
>       awk -F, 'NF>=2 {print $1; print $2}'  <arquivo |
>           while read x1 && read x2
>           do
>               script_perl "$x2"
>               script_bash "$x1"
>           done

minha contribuiçãozinha em bash também...

arq=ARQUIVO
cat $arq | while read linha; do
    export IFS=,
    set - $linha
    script_em_perl "$2"
    script_em_bash "$1"
done

estou usando o IFS para dizer ao bash que o separador é a vírgula.

não preciso guardar o IFS anterior e depois restaurar porque o próprio
while tem o defeito (feature?) de não compartilhar as variáveis usadas por
ele depois que ele se vai.

o set - serve para pegar o que tiver na variável $linha e jogar nos
parâmetros $1-$.., respeitando o IFS como delimitador de parâmetros.

e por fim, coloco $1 e $2 entre aspas para que, se tiver espaços, possam
ser passados para os sub-scripts como um parâmetro somente.

a outra maneira seria guardar o IFS em uma variável antes do while, mudar
ela para vírgula, e usar o próprio while para pegar os dois parâmetros.
depois restaurando o IFS após o done.
mas essa fica de lição de casa. ':)


sed you later,
-- 
./eliphas.sh -levy | vim -x -R -b -T screen -c 'screen -r' -
"From a programmer's point of view, the user is a peripheral
that types when you issue a READ request."   -Peter Williams
 ============ ALL YOUR BASE ARE BELONG TO US! ============



Assinantes em 10/04/2001: 2193
Mensagens recebidas desde 07/01/1999: 108673
Historico e [des]cadastramento: http://linux-br.conectiva.com.br
Assuntos administrativos e problemas com a lista: 
            mailto:[EMAIL PROTECTED]

Responder a