SQL a Shell Unix (Bash, etc)

Muchas veces se necesitan hacer operaciones de datos con archivos de texto, y suele ser complicado, hay que subir los archivos nuevamente a la base de datos, etc.

Utilizando esta guia y con un poco de conocimiento de SQL, vas a poder hacer “magia”.

Consideremos el siguiente archivo de prueba

SELECT * FROM

cat $archivo

Reemplazar $archivo por un archivo

Ejemplo

SELECT * FROM WHERE rowid = (linea)

sed -n '$lineap' $archivo

Reemplazar $linea por un numero de linea
Reemplazar $archivo por el archivo

Atención que el numero sigue de una “p”

Ejemplo

SELECT * FROM WHERE rowid BETWEEN (linea 1, linea 2)

Reemplazar $desde por el numero de linea desde
Reemplazar $hasta por el numero de linea hasta
Reemplazar $archivo por el archivo

Ejemplo

SELECT COUNT 1 FROM file

Reemplazar $archivo por un archivo

Ejemplo

SELECT COUNT(1), FROM GROUP BY (campo 1)

Reemplazar $archivo por el archivo que corresponde
Reemplazar $separador por el caracter de separacion del archivo, “|”, “,”, “;” etc
Reemplazar $numCampo por el NUMERO de campo (1, 2, 3, 99)

Atencion, el $numCampo va precedido de un simbolo “$”

Ejemplo

SELECT COUNT(1), campo1, campo2 FROM GROUP BY (campo 1, campo 2)

Reemplazar $archivo por el archivo que corresponde
Reemplazar $separador por el caracter de separacion del archivo, “|”, “,”, “;” etc
Reemplazar $numCampo1 y $numCampo2 por los numeros de campo (1, 2, 3, 99)

Atencion, el $numCampo va precedido de un simbolo “$”

Ejemplo

SELECT COUNT(1), campo GROUP BY (campo) HAVING COUNT(1) > numero

Reemplazar $archivo por el archivo que corresponde
Reemplazar $separador por el caracter separador que corresponda
Reemplazar $numCampo por el campo agrupador
Reemplazar $numero por el numero de condicion del HAVING

Ejemplo

SELECT campo1, campo2, et FROM

Reemplazar $archivo por el archivo que corresponde
Reemplazar $separador por el separador del archivo original (usualmente un pipe, ‘|’)
Reemplazar $numCampo1, etc por el NUMERO de campo (1, 2, 3, 99)

SELECT campo1, campo2, etc FROM archivo where = condicion

Los tipos de condiciones disponibles son las siguientes

SQL

Shell

= 1 $1==1
= ‘varchar’ $1==”hola”
campo1 <> 1 $1!=1
AND $1==1 && $2==’hola’

OR

$1==1 || $2==’hola’
> $1>1

Reemplazar $archivo por el archivo que corresponde
Reemplazar $separador por el separador del archivo original (usualmente un pipe, ‘|’)
Reemplazar $numCampo por el NUMERO de campo (1, 2, 3, 99)
Reemplazar $numero por un numero
Reemplazar $texto por un texto

Ejemplo

SUBSTR(Campo, inicio, fin)

Ejemplo

Dejá una respuesta