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]