GNU/Linux >> Belajar Linux >  >> Linux

Membaca file CSV dengan kueri SQL dari linux shell

Lihatlah https://github.com/harelba/q , alat Python untuk memperlakukan teks sebagai database. Secara default menggunakan spasi untuk membatasi bidang, tetapi -d , parameter akan memungkinkan untuk memproses file CSV.

Atau Anda dapat mengimpor file CSV ke SQLite dan kemudian menjalankan perintah SQL untuk melawannya. Ini dapat dituliskan, dengan sedikit usaha.


Ada juga csvsql (bagian dari csvkit)!

Itu tidak hanya dapat menjalankan sql pada csv yang diberikan (mengubahnya menjadi sqlite di belakang layar), tetapi juga mengonversi dan menyisipkan ke dalam salah satu dari banyak database sql yang didukung!

Di sini Anda memiliki contoh perintah (juga di 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]"

menunjukkan cara menggabungkan tiga tabel (tersedia di csv_inputs di csv_dbs_examples).

(memformat dengan csvlook juga merupakan bagian dari csvkit)

Masukan

$ 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

Menghasilkan:

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

Linux
  1. Membaca Baris Dari File Dengan Bash:Untuk Vs. Ketika?

  2. Membaca Pola Grep Dari File?

  3. Izin File di Linux dengan Contoh

  1. Urutkan Perintah di Linux dengan Contoh

  2. 4 langkah untuk membuat pengguna Linux dari file csv dengan Ansible

  3. Cara mengubah kata dalam file dengan skrip shell linux

  1. Periksa izin file Linux dengan ls

  2. Shell Linux mendapatkan nilai bidang dari file yml

  3. Otentikasi dari Linux ke Windows SQL Server dengan pyodbc