看到DK的文章上提到這個功能覺得也太有趣了, 沒想到會有這麼簡單方式來從CSV檔中讀取想要的內容…
使用方式
將sqlite3 透過memory的方式讀取了以後, 就可以透過SQL來找到其中想要的內容了…
sqlite3 :memory: -cmd '.mode csv' -cmd '.import mds_content_status.csv temp' -cmd '.mode column' 'SELECT * FROM temp'
為了讓使用方式更方便, 還可以在.bashrc
或 .zshrc
中把上面的cli 指令包裝成 shell function 如下:
function query_csv() {
local CSV_FILE=$1
local TABLE=$2
local QUERY=$3
sqlite3 :memory: -cmd '.headers on' -cmd '.mode csv' -cmd ".import ${CSV_FILE} ${TABLE}" -cmd '.mode column' "${QUERY}"
}
然後我們就可以用下面的方式去query了…
query_csv users.csv user_table 'SELECT id, name FROM user_table where id=17807'