通常,当我在平面文件中有例如 csv 时,我会这样做:
cat somefile.dat |gnu_parralel do_something.
不幸的是,我现在有一个 sqllite3 文件,其列内容类型为:
text, text, json
我想复制猫的行为,以便我可以对 sqllite3 数据库的每一行进行所有下游工作,但我不确定如何在 sqlite3 中进行。所以,我喜欢:
cat_in_sqllite3 somefile.db |gnu_parralel do_something.
PS:从未使用过 sqlite3,所以如果这是一个愚蠢的问题,我深表歉意。
您需要知道数据库中表的名称。如果我使用它,我发现我的只有一张桌子,叫做
Data
:
sqlite3 database.db ".tables"
Data
现在您可以查询该表中的所有记录:
sqlite3 database.db "select * from Data"
0,"27576,28095,4757"
1,"24415,26688,21060"
2,"30487,13470,31387"
3,"10553,25709,27472"
4,"17074,14918,19630"
您可能不喜欢输出格式,因此您可以通过以下方式查看可用模式:
sqlite3 database.db ".mode ?"
Error: mode should be one of: ascii box column csv html insert json line list markdown qbox quote table tabs tcl
然后您可以选择不同的模式并在该模式下打印数据:
sqlite3 database.db ".mode json" "select * from Data"
[{"id":0,"channel0":"27576,28095,4757"},
{"id":1,"channel0":"24415,26688,21060"},
{"id":2,"channel0":"30487,13470,31387"},
{"id":3,"channel0":"10553,25709,27472"},
{"id":4,"channel0":"17074,14918,19630"}]
您可能希望包含列标题:
sqlite3 readings.db ".headers on" "select * from Data"
id|channel0
0|27576,28095,4757
1|24415,26688,21060
2|30487,13470,31387
3|10553,25709,27472
4|17074,14918,19630
或者打压他们:
sqlite3 readings.db ".headers off" "select * from Data"
0|27576,28095,4757
1|24415,26688,21060
2|30487,13470,31387
3|10553,25709,27472
4|17074,14918,19630