如何指定要在SQLite';中使用的记录分隔符;谁的产量?
我使用以下命令将SQL查询结果输出到文本文件:如何指定要在SQLite';中使用的记录分隔符;谁的产量?,sql,sqlite,Sql,Sqlite,我使用以下命令将SQL查询结果输出到文本文件: $sqlite3 my_db.sqlite "SELECT text FROM message;" > out.txt 这给了我如下输出: text for entry 1 text for entry 2 不幸的是,当文本包含换行符时,这种情况就会发生: text for entry 1 text for entry 2 如何为SQLite指定输出数据时使用的输出分隔符(我知道文本中不存在),以便更轻松地解析结果?例如: text
$sqlite3 my_db.sqlite "SELECT text FROM message;" > out.txt
这给了我如下输出:
text for entry 1
text for entry 2
不幸的是,当文本包含换行符时,这种情况就会发生:
text for entry 1
text for
entry 2
如何为SQLite指定输出数据时使用的输出分隔符(我知道文本中不存在),以便更轻松地解析结果?例如:
text for entry 1
=%=
text for
entry 2
=%=
text for entry 3
试试这个
$sqlite3 -separator '=%=' my_db.sqlite "SELECT text FROM message;" > out.txt
更新1我怀疑这是因为'-list'默认选项。要关闭此选项,您需要更改当前模式 这是一个模式列表
.mode MODE ?TABLE? Set output mode where MODE is one of:
csv Comma-separated values
column Left-aligned columns. (See .width)
html HTML <table> code
insert SQL insert statements for TABLE
line One value per line
list Values delimited by .separator string
tabs Tab-separated values
tcl TCL list elements
-list Query results will be displayed with the separator (|, by
default) character between each field value. The default.
-separator separator
Set output field separator. Default is '|'.
.mode?表格?设置输出模式,其中模式为:
csv逗号分隔值
列左对齐列。(见第1.2条宽度)
html代码
表的insert SQL insert语句
每行一个值
列出由.separator字符串分隔的值
制表符制表符分隔值
tcl列表元素
-列表查询结果将以分隔符(|)显示,按
默认值)每个字段值之间的字符。默认值。
-分离器
设置输出字段分隔符。默认值为“|”。
找到此信息请尝试获取此信息
$sqlite3 -separator '=%=' my_db.sqlite "SELECT text FROM message;" > out.txt
更新1我怀疑这是因为'-list'默认选项。要关闭此选项,您需要更改当前模式 这是一个模式列表
.mode MODE ?TABLE? Set output mode where MODE is one of:
csv Comma-separated values
column Left-aligned columns. (See .width)
html HTML <table> code
insert SQL insert statements for TABLE
line One value per line
list Values delimited by .separator string
tabs Tab-separated values
tcl TCL list elements
-list Query results will be displayed with the separator (|, by
default) character between each field value. The default.
-separator separator
Set output field separator. Default is '|'.
.mode?表格?设置输出模式,其中模式为:
csv逗号分隔值
列左对齐列。(见第1.2条宽度)
html代码
表的insert SQL insert语句
每行一个值
列出由.separator字符串分隔的值
制表符制表符分隔值
tcl列表元素
-列表查询结果将以分隔符(|)显示,按
默认值)每个字段值之间的字符。默认值。
-分离器
设置输出字段分隔符。默认值为“|”。
找到此信息若要分隔列,您必须使用group_concat和分隔器 查询演变:
SELECT text FROM messages;
SELECT GROUP_CONCAT(text, "=%=") FROM messages;
SELECT GROUP_CONCAT(text, "\r\n=%=\r\n") FROM messages;
// to get rid of the concat comma, use replace OR change seperator
SELECT REPLACE(GROUP_CONCAT(text, "\r\n=%="), ',', '\r\n') FROM messages;
备选方案:Sqlite到CSV导出(使用自定义分隔符),然后使用该选项。为了分隔列,您必须使用group_concat和分隔符 查询演变:
SELECT text FROM messages;
SELECT GROUP_CONCAT(text, "=%=") FROM messages;
SELECT GROUP_CONCAT(text, "\r\n=%=\r\n") FROM messages;
// to get rid of the concat comma, use replace OR change seperator
SELECT REPLACE(GROUP_CONCAT(text, "\r\n=%="), ',', '\r\n') FROM messages;
备选方案:Sqlite到CSV导出(使用自定义分隔符),然后使用它。我有同样的问题,有一个更简单的解决方案。我在以下网站上找到: .COL?行吗?更改列和行分隔符 例如:
sqlite> .separator | ,
sqlite> select * from example_table;
1|3,1|4,1|15,1|21,1|33,2|13,2|16,2|32,
或不带柱分隔符:
sqlite> .separator '' ,
sqlite> select * from example_table;
13,14,115,121,133,213,216,232,
或者,要回答上面提出的具体问题,只需以下几点:
sqlite> .separator '' \r\n=%=\r\n
sqlite> select * from message;
text for entry 1
=%=
text for
entry 2
=%=
text for entry 3
=%=
我有同样的问题,有一个更简单的解决办法。我在以下网站上找到: .COL?行吗?更改列和行分隔符 例如:
sqlite> .separator | ,
sqlite> select * from example_table;
1|3,1|4,1|15,1|21,1|33,2|13,2|16,2|32,
或不带柱分隔符:
sqlite> .separator '' ,
sqlite> select * from example_table;
13,14,115,121,133,213,216,232,
或者,要回答上面提出的具体问题,只需以下几点:
sqlite> .separator '' \r\n=%=\r\n
sqlite> select * from message;
text for entry 1
=%=
text for
entry 2
=%=
text for entry 3
=%=
谢谢,但这似乎是为列设置分隔符,而不是为记录设置分隔符。因此,如果我要“从消息中选择文本,guid”,则“=%=”将分隔id和文本,但记录本身仍由换行符分隔。(我使用的是SQLite版本3.7.13 2012-07-17 17:46:21。)谢谢,但这似乎为列设置了分隔符,而不是记录。因此,如果我要“从消息中选择文本,guid”,则“=%=”将分隔id和文本,但记录本身仍由换行符分隔。(我使用的是SQLite版本3.7.13 2012-07-17 17:46:21。)这并不能回答这个问题。若要评论或要求作者澄清,请在其帖子下方留下评论。非常感谢您对我的指导。这并不能回答问题。若要评论或要求作者澄清,请在其帖子下方留下评论。非常感谢您对我的指导。