GNU/Linux >> Tutoriels Linux >  >> Linux

Lecture d'un fichier CSV avec des requêtes SQL à partir du shell Linux

Jetez un œil à https://github.com/harelba/q, un outil Python pour traiter le texte comme une base de données. Par défaut, il utilise des espaces pour délimiter les champs, mais le -d , lui permettra de traiter les fichiers CSV.

Vous pouvez également importer le fichier CSV dans SQLite, puis exécuter des commandes SQL dessus. Ceci est scriptable, avec un peu d'effort.


Il y a aussi csvsql (partie de csvkit) !

Il peut non seulement exécuter sql sur un csv donné (le convertir en sqlite dans les coulisses), mais également convertir et insérer dans l'une des nombreuses bases de données sql prises en charge !

Ici, vous avez un exemple de commande (également dans 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]"

montrant comment joindre trois tables (disponible dans csv_inputs dans csv_dbs_examples).

(le formatage avec csvlook fait également partie de csvkit)

Entrées

$ 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

Produit :

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

Linux
  1. Commande de tri sous Linux avec des exemples

  2. Lecture de lignes à partir d'un fichier avec Bash :pour Vs. Tandis que?

  3. Lire des modèles Grep à partir d'un fichier ?

  4. Comment changer un mot dans un fichier avec un script shell Linux

  5. Créer des modèles avec Linux dans un script Shell ?

Comment supprimer les caractères (^M) d'un fichier sous Linux

Utilisation de la commande Linux mv avec des exemples

Sécurisez Linux avec le fichier Sudoers

Commande de montage Linux avec exemples

Commande Linux gawk avec exemples

Linux make Commande avec des exemples