2013-01-21 79 views
2

我需要使用单个命令行从数据库中获取一组记录。 如果我这样做:SQLite在单行命令中定义输出字段分隔符

$ sqlite3 con.db "SELECT name,cell,email FROM contacts" 

我得到输出与分隔符“|”,这里的输出看起来是这样的:

Alison|+12345678|[email protected] 
Ben|+23456789|[email protected] 
Steve|+34567890|[email protected] 

有没有像指定在单个命令行格式的方式(大于)将输出字段分隔符更改为其他内容,如“;;;”或其他或更独特的东西。这是因为输出偶尔会得到字符“|”在记录里面,它会引起问题。

我期望的结果是:

Alison;;;+12345678;;;[email protected] 
Ben;;;+23456789;;;[email protected] 
Steve;;;+34567890;;;[email protected] 

或任何其他独特的分离,这是不太可能的值内被发现。

(该命令在Linux机器上执行)

谢谢。

回答

5

-separator option你想要做什么:

sqlite3 -separator ';;;' con.db "SELECT ..." 

格式化输出,使你保证不了分离器,该值的唯一方法是引用的所有字符串:

sqlite3 con.db "SELECT quote(name), quote(cell), quote(email) FROM contacts" 

但是,这将需要您根据SQL语法规则解析输出。

+0

谢谢,正是我需要的!第一个选项很好地诀窍。 – Sazzy

+0

谢谢,SELECT语句(blah)帮助了我! –