Meu caro Tiago,
Cara eu nao tenho muita experiência com shell script, por isso acabei
por nao conseguir desenrolar muita coisa do que escreveu ..será que tem
como esmiuçar um pouco mais?
Desde ja Grato
Vinicius Marques
Tiago Barcellos Peczenyj wrote:
>
> Ola
>
> Validar este arquivo é facil, basta definir o 'numero' do campo e uma
> expressão regular.
>
> awk -F: 'function validate(valor,nome){
> if (valor !~ /[0-9A-Za-z]/) printf "Erro! Campo \"%s\" vazio na
> linha %d\n",nome,NR
> }
> {validate($3,"nome"); validate($4,"tel")}' dados
>
> Se o campo que vc informa não 'casar' com a expressão regular, um
> aviso sera emitido. vc pode personalizar a mensagem de erro.
>
> Agora, o seu outro problema de cortar o 'fulano de tal' é que vc manda
> do awk pro bash, e o separador de campos do BASH tem que ser setado
> também. Vc poderia fazer tudo em awk, inclusive.
>
> #!/usr/bin/gawk -f
> function insert(matr,nome,tel,tel1,tel2,mail,alias){
> cmd = "insert into dados (matr,nome,tel,tel1,tel2,mail,alias) values" ;
> return cmd
>
sprintf("('%s','%s','%s','%s','%s','%s')",matr,nome,tel,tel1,tel2,mail,alias);
> }
> BEGIN{ FS=":"; }
> {
> print insert($2,$3,$4,$5,$6,$7);
> }
>
> vc pode executar assim:
>
> $ ./arquivo.awk dados > insert.sql
>
> e ai mandar o mysql importar este arquivo.
>
> Veja se isso lhe ajuda.
>
> On 12/11/06, Vinicius Marques <address@hidden
<mailto:viniciusrt01%40pop.com.br>
> <mailto:viniciusrt01%40pop.com.br>> wrote:
> >
> >
> >
> >
> >
> >
> > Srs,
> > Não tenho muita experiencia em Shell script e estava quebrando a
cabeça
> > para fazer uma insercao num BD e estava com os seguintes problemas.
> >
> > Os campos do texto que quero inserir estao dispostos da seguinte
forma.
> >
> > :001:Fulano de tal:0xx21656565656: : : address@hidden
<mailto:fulano%40tal.net>
> <mailto:fulano%40tal.net>: fulano
> >
> > Porém como mostrado na linha alguns cadastros eu tenho campos vazios.
> > Nesse caso eu ja queri acrescentar
> > um "nao informado" na hora da insercao". Outro problema é qdo eu
rodo o
> > script abaixo ele me incrementa no banco só que assim no campo matr OK
> > tudo certo porem o nome "Fulano de tal" e distribuido nos outros
campos
> > nome=fulano, tel=de, tel1=tal..
> > Será que poderiam me dar uma luz sobre o assunto, ou material diretriz
> > qq força é bem vinda.
> > Abraço
> > Vinicius Marques
> >
> > #!/bin/sh
> > data=date
> > cat $1 | awk -F: '{ print $2 $3 $4 $5 $6 $7 }' | while read x y z
k a b
> > do
> > /usr/local/mysql/bin/mysql -u root -e "insert into dados
> > (matr,nome,tel,tel1,tel2,mail,alias) values
> > ('$x','$y','$z','$k','$a','$b')" Locate
> > #echo $x $y $z $k $a $b $c
> > done
> >
> > if [ "$?" = "1" ]
> > then
> > wall Erro na inclusao do Registro $count
> > echo "Erro na insercao de dados do dia $data no registro $count" >>
> > result_$data.log
> > fi
> > done
> >
> >
> > _______________________________________________________
> > Novidade no Yahoo! Mail: receba alertas de novas mensagens no seu
> celular. Registre seu aparelho agora!
> > http://br.mobile.yahoo.com/mailalertas/
<http://br.mobile.yahoo.com/mailalertas/>
> <http://br.mobile.yahoo.com/mailalertas/
<http://br.mobile.yahoo.com/mailalertas/>>
> >
> >
> >
>
> --
> Tiago B Peczenyj
> Linux User #405772
>
> # cd /pub
> # more beer
>
>
_______________________________________________________
Você quer respostas para suas perguntas? Ou você sabe muito e quer
compartilhar seu conhecimento? Experimente o Yahoo! Respostas !
http://br.answers.yahoo.com/ <http://br.answers.yahoo.com/>