我想从命令行查询的输出中获取无标题的CSV数据。我在与MySQL服务器不同的计算机上运行此查询,因此所有带有“INTO OUTFILE”的Google回答都不好。
所以我运行mysql -e "select people, places from things"
。输出的内容看起来像这样:
+--------+-------------+
| people | places |
+--------+-------------+
| Bill | Raleigh, NC |
+--------+-------------+
好吧,那不好。但是,嘿,看!如果我仅将其通过管道传递到任何内容,它将变成一个制表符分隔的列表:
people places
Bill Raleigh, NC
那样更好-至少可以通过程序分析。但是我不想要TSV,我想要CSV,并且我不需要那个标题。我可以使用
mysql <stuff> | tail -n +2
摆脱标题,但是如果MySQL仅带有标记可以忽略它,那是我要避免的麻烦。而且我不能只用逗号替换所有选项卡,因为这不能处理带有逗号的内容。那么,如何才能使MySQL省略 header 并以CSV格式提供数据?
最佳答案
作为部分答案:mysql -N -B -e "select people, places from things"
-N
告诉它不打印列标题。 -B
是“批处理模式”,并使用制表符分隔字段。
如果制表符分隔的值不够用,请参阅this Stackoverflow Q&A。