[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Tratamento linha a linha
From: |
Eliphas Levy Theodoro |
Subject: |
Re: [shell-script] Tratamento linha a linha |
Date: |
Thu, 16 Dec 2004 16:10:40 -0200 (BRST) |
Bom, vamos definir um padrão então:
- arquivo com registros em linhas múltiplos de 3;
- dessas 3 linhas, a primeira é o "id" do "setor", digamos;
- a segunda é o registro que vai ser impresso;
- a terceira é separador.
Tou com um sed na cabeça, mas vamos tentar fazer com o while:
$ cat arquivo
A
uga|buga|ble
B
foo|bar|baz
C
lala|lele|lili
A
huguinho|zezinho|luizinho
$ cat script
#!/bin/sh
end=1
while read line; do
if [ "$end" ]; then # começo de um novo registro
id="$line"
end=""
elif [ "$id" ]; then # linha com o id
echo -n "$line"
# faz algo com o $id
echo "|.$id."
# feito
id=""
continue
else
end=1
continue
fi
done < arquivo
$ script
uga|buga|ble|.A.
foo|bar|baz|.B.
lala|lele|lili|.C.
huguinho|zezinho|luizinho|.A.
No lugar do echo "|.$id." você pode fazer o que quiser com o $id, pegar
algo em banco de dados, etc. É isso?
--
Eliphas
Leonardo Ayres, @ 15/12/04 - 20:21:
> Na verdade, eu teria um arquivo de entrada assim:
>
> A
> nome1|endereco1|telefone1
> B
> nome2|endereco2|telefone2
> D
> nome3|endereco3|telefone3
> D
> nome4|endereco4|telefone4
> A
> nome5|endereco5|telefone5
> B
> nome6|endereco6|telefone6
>
> E teria que resultar um arquivo do tipo:
> nome1|endereco1|telefone1|7
> nome2|endereco2|telefone2|3
> nome3|endereco3|telefone3|2
> nome4|endereco4|telefone4|2
> nome5|endereco5|telefone5|7
> nome6|endereco6|telefone6|3
>
> Onde, dependendo do que veio antes, eu coloco um código depois, que
> eu vou buscar na base de dados.
>
> Acrescente a este problema, que eu tenho uma linha em branco a cada
> duas linhas:
> A
> nome1|endereco1|telefone1
>
> B
> nome2|endereco2|telefone2
>
> D
> nome3|endereco3|telefone3
>
> D
> nome4|endereco4|telefone4
>
> A
> nome5|endereco5|telefone5
>
> B
> nome6|endereco6|telefone6
[As partes desta mensagem que não continham texto foram removidas]
Re: [shell-script] Tratamento linha a linha, Nicole, 2004/12/15
Re: [shell-script] Tratamento linha a linha, Rafael Quirino, 2004/12/15