Separadores de campos, registros usando bash

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

Responses

Browse pgsql-es-ayuda by date

  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?