[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Re: Tratamento linha a linha
From: |
Gentil de Bortoli Júnior |
Subject: |
Re: [shell-script] Re: Tratamento linha a linha |
Date: |
Thu, 16 Dec 2004 11:00:17 -0200 |
User-agent: |
Mozilla Thunderbird 1.0 (X11/20041206) |
Leonardo, eu não visualizei o seu problema corretamente.
Bom, eu fiz umas gambiarras, e isso não me agradou. Peço tb as dicas
dos mais experientes.
Veja, eu criei um arquivo assim:
$cat Arquivo.txt
A
Gentil de Bortoli Júnior|Av. João Turin 1|(00) 111-1111
A
Leonardo Ayres|Rua Sem Nome 2|(00) 222-2222
B
Fulano da Silva|Jd. Botânico|(00) 333-3333
$
E o seguinte script:
#!/bin/bash
arquivo=${1:?"Sintaxe: ${0} <Arquivo>"}
clear
echo "Arquivo Original"
echo "-----------------------------------------"
cat ${arquivo}
echo "-----------------------------------------"
echo
i=0
for linha in `cat ${arquivo} | sed '/^$/d' | tr " " "#"`; do
i=$((${i}+1))
l[${i}]="${linha}"
done
echo "Arquivo Tratado"
echo "-----------------------------------------"
for linha in `seq ${i}`; do
if [ "${l[${linha}]}" == "A" ]; then
echo "${l[$((${linha}+1))]}|7" | tr "#" " "
elif [ "${l[${linha}]}" == "B" ]; then
echo "${l[$((${linha}+1))]}|3" | tr "#" " "
elif [ "${l[${linha}]}" == "D" ]; then
echo "${l[$((${linha}+1))]}|2" "#" " "
fi
done
echo "-----------------------------------------"
Sobre o let, creio que o problema seja a versão do seu bash. Então
troquei let i++ por i=$((${i}+1)).
O outro problema parece ser referente aos espaços existentes entre os
nomes. Eu não soube contornar isso no for, e então fiz a gambiarra que
eu não gostei.
Primeiro removi as linhas em branco com o sed e depois troquei os
espaços em branco por "#".
No final, troqui "#" por espaço em branco novamente.
Não gostei dessa solução e por isso solicito dicas tb. :)
[]s
No meu shell eu tenho estes erros:
teste.sh: let: not found
teste.sh: l[0]=Customer: not found
"Customer" é uma parte do texto do arquivo. São vários erros deste
tipo em seqüência até terminar o arquivo.
Re: [shell-script] Tratamento linha a linha, Nicole, 2004/12/15
Re: [shell-script] Tratamento linha a linha, Rafael Quirino, 2004/12/15