[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: AWK para separar linhas e campos
From: |
Marcelo Salhab Brogliato |
Subject: |
Re: AWK para separar linhas e campos |
Date: |
Fri, 9 Nov 2007 19:47:34 -0200 |
Olá,
descobri que, se eu trocar: echo $entry | awk 'BEGIN { FS="^" } {
for (i=1; i<=NF; i++) { $i ~ /([^:])(.*)/ { print $1, "::", $2 } } }'
por: echo $entry | awk 'BEGIN { FS="^" } { for (i=1; i<=NF; i++)
print $i }'
ele imprime pra mim CAMPO por CAMPO... faltando apenas separar por chave e
valor...
onde: ([^:]+)(.*) ... $1 = chave, $2 = valor
alguem tem alguma sugestao?
to tentando fazer isso dentro do AWK mesmo...
mas pode ser externo...
abraços,
Salhab
On Nov 9, 2007 7:32 PM, Marcelo Salhab Brogliato <address@hidden> wrote:
> Olá,
>
> tenho entradas do tipo:
> nome:Joao da Silva^sexo:Masculino^idade:48
> nome:Carlos^email:address@hidden^Observacoes: hehehe::lala:
>
> e assim vai...
> preciso montar SQL para inserir em um banco de dados...
> em cada linhas, tenho os campos separados por ^, e os campos sao assim:
> ([^:]+)(.*) ... $1 é campo, $2 é o valor...
>
> estou fazendo o seguinte:
>
> TMP=$IFS
> IFS=`echo " " | tr " " "\n"`
> for entry in $contacts;
> do
> echo $entry | awk 'BEGIN { FS="^" } { for (i=1; i<=NF; i++) { $i ~
> /([^:])(.*)/ { print $1, "::", $2 } } }'
> done
> IFS=$TMP
>
> mas nao consigo nada alem de mensagens de erro :)
>
> alguem tem alguma sugestao?
>
> abracos,
> Salhab
>
>
>
[As partes desta mensagem que não continham texto foram removidas]