GNU/Linux >> Tutoriales Linux >  >> Linux

Lectura de un archivo CSV con consultas SQL desde el shell de Linux

Eche un vistazo a https://github.com/harelba/q, una herramienta de Python para tratar el texto como una base de datos. Por defecto usa espacios para delimitar campos, pero el -d , El parámetro le permitirá procesar archivos CSV.

Alternativamente, puede importar el archivo CSV a SQLite y luego ejecutar comandos SQL en él. Esto es programable, con un poco de esfuerzo.


¡También hay csvsql (parte de csvkit)!

¡No solo puede ejecutar sql en csv dado (convirtiéndolo en sqlite detrás de escena), sino también convertirlo e insertarlo en una de las muchas bases de datos sql compatibles!

Aquí tienes un comando de ejemplo (también en csvsql_CDs_join.sh):

csvsql --query 'SELECT CDTitle,Location,Artist FROM CDs JOIN Artists ON CDs.ArtistID=Artists.ArtistID JOIN Locations ON CDs.LocID = Locations.LocID' "[email protected]"

mostrando cómo unir tres tablas (disponible en csv_inputs en csv_dbs_examples).

(formatear con csvlook también forma parte de csvkit)

Entradas

$ csvlook csv_inputs/CDs.csv 

| CDTitle  | ArtistID | LocID |
| -------- | -------- | ----- |
| CDTitle1 | A1       | L1    |
| CDTitle2 | A1       | L2    |
| CDTitle3 | A2       | L1    |
| CDTitle4 | A2       | L2    |

$ csvlook csv_inputs/Artists.csv 

| ArtistID | Artist  |
| -------- | ------- |
| A1       | Artist1 |
| A2       | Artist2 |

$ csvlook csv_inputs/Locations.csv 

| LocID | Location  |
| ----- | --------- |
| L1    | Location1 |
| L2    | Location2 |

csvsql

$ csvsql --query 'SELECT CDTitle,Location,Artist FROM CDs JOIN Artists ON CDs.ArtistID=Artists.ArtistID JOIN Locations ON CDs.LocID = Locations.LocID' "[email protected]" | csvlook

Produce:

| CDTitle  | Location  | Artist  |
| -------- | --------- | ------- |
| CDTitle1 | Location1 | Artist1 |
| CDTitle2 | Location2 | Artist1 |
| CDTitle3 | Location1 | Artist2 |
| CDTitle4 | Location2 | Artist2 |

Linux
  1. 4 pasos para crear usuarios de Linux desde un archivo csv con Ansible

  2. Permisos de archivo en Linux con ejemplo

  3. Shell de Linux obtiene el valor de un campo de un archivo yml

  4. Autenticar desde Linux a Windows SQL Server con pyodbc

  5. ¿Plantillas con Linux en un script de Shell?

Cómo quitar (^M) caracteres de un archivo en Linux

Uso del comando Linux mv con ejemplos

Asegure Linux con el archivo Sudoers

Comando de montaje de Linux con ejemplos

Comando gawk de Linux con ejemplos

Comando make de Linux con ejemplos