From: | Julio Rios <julio(dot)rios(dot)2006(at)gmail(dot)com> |
---|---|
To: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Separadores de campos, registros usando bash |
Date: | 2011-07-29 11:43:51 |
Message-ID: | CADub=nx_hw-On1jPGaAoCqmxSWwFAdR=cRAF07tsdB7KgDxxmQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Buenos días, estoy intentando recuperar datos mediante scripts en bash sobre
una consulta SQL.
La consulta por ejemplo tiene 2 campos y 4 filas y estoy intentando
recuperar estos datos para almacenarlo en variables y luego hacer ciertas
cosas dependiendo de los datos almacenados.
Estoy mirando la ayuda de psql y no logro poner en el comando psql los
parámetros necesarios para poder separar correctamente campos, y registros y
luego poder meterlo en variables.
Alguno de ustedes ha tenido esta problemática y sabe como resolverlo.
Adjunto el ejemplo en bash que estoy intentado resolver
#!/bin/bash
RES=`psql -d BBDD -U usuario -h servidor -A -t -c "SELECT l_registro,
c_usuario from ts_usuarios order by 1 desc;"` # Ejecuto la consulta y la
guardo en RES
OLDIFS="$IFS" # Respaldo el valor de IFS, no olvidar las comillas dobles
IFS=$'/n' # Seteo el valor de IFS que me sirve
echo $RES
for row in $RES ; # Itero por los registros porque for separará por \n
do
if [ ${#row} -gt 0 ]; then # Chequeo si tengo un registro
INNERIFS="$IFS" # Hago un respaldo temporal de IFS, no olvidar las
comillas dobles
IFS="$OLDIFS" # Ahora separaré los campos
id=$(echo $row | cut -d "|" -f 1)
nombre=$(echo $row | cut -d "|" -f 2)
echo "El id es $id y el nombre es $nombre"
IFS="$INNERIFS" # Vuelvo a hacer que IFS separe por \n para la
próxima iteración
fi
done
IFS="$OLDIFS" # Dejo IFS en su estado original.
Gracias
From | Date | Subject | |
---|---|---|---|
Next Message | Gilberto Castillo Martínez | 2011-07-29 12:04:28 | Re: Separadores de campos, registros usando bash |
Previous Message | Mariano Reingart | 2011-07-28 18:42:22 | Re: replicacion? |