GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Lesen einer CSV-Datei mit SQL-Abfragen aus der Linux-Shell

Werfen Sie einen Blick auf https://github.com/harelba/q, ein Python-Tool zur Behandlung von Text als Datenbank. Standardmäßig werden Leerzeichen zum Trennen von Feldern verwendet, aber der -d , -Parameter ermöglicht die Verarbeitung von CSV-Dateien.

Alternativ können Sie die CSV-Datei in SQLite importieren und dann SQL-Befehle darauf ausführen. Dies ist mit etwas Aufwand skriptfähig.


Es gibt auch csvsql (Teil von csvkit)!

Es kann nicht nur SQL auf einer gegebenen CSV-Datei ausführen (und es hinter den Kulissen in SQLite konvertieren), sondern auch konvertieren und in eine von vielen unterstützten SQL-Datenbanken einfügen!

Hier haben Sie einen Beispielbefehl (auch in 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]"

zeigt, wie man drei Tabellen verbindet (verfügbar in csv_inputs in csv_dbs_examples).

(Formatierung mit csvlook auch Teil von csvkit)

Eingaben

$ 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

Erzeugt:

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

Linux
  1. Sortierbefehl in Linux mit Beispielen

  2. Lesen von Grep-Mustern aus einer Datei?

  3. Dateiberechtigungen unter Linux mit Beispiel

  4. Überprüfen Sie die Linux-Dateiberechtigungen mit ls

  5. So ändern Sie ein Wort in einer Datei mit einem Linux-Shell-Skript

So entfernen Sie (^M) Zeichen aus einer Datei in Linux

Verwendung des Linux-mv-Befehls mit Beispielen

Sichern Sie Linux mit der Sudoers-Datei

Linux-Mount-Befehl mit Beispielen

gawk Linux-Befehl mit Beispielen

Linux-make-Befehl mit Beispielen