在Bash中解析MySQL输出

Laz*_*tra 6 mysql bash

如何将表边框的mysql查询输出重定向为分隔符?我尝试使用此代码:

mysql -u root -h localhost -D cronjob -e "select * from cron_list" > query.txt
Run Code Online (Sandbox Code Playgroud)

我期望输出如下:

| id |  datetime  | recurrency |          command          |
|  1 | 2014-10-10 |    daily   | bash /media/data/daily.sh |
|  2 | 2014-10-09 |  minutely  |           conky           |
Run Code Online (Sandbox Code Playgroud)

但是,当我使用该代码时,它会给我输出

 id   datetime   recurrency           command          
  1  2014-10-10     daily    bash /media/data/daily.sh 
  2  2014-10-09   minutely             conky           
Run Code Online (Sandbox Code Playgroud)

那么,如何将终端的输出重定向到带终端的分隔符的文件?抱歉英文不好

fed*_*qui 8

来自man mysql:

--table,-t

以表格格式显示输出.这是交互式使用的默认设置,但可用于以批处理模式生成表输出.

注意-t是默认行为,但不管何时管道到文件.这就是为什么在这种情况下你必须明确.


其他有趣的选项,用于其他类型的输出:

--silent,-s

静音模式.产量减少.可以多次给出此选项以产生越来越少的输出.

此选项会导致非常规输出格式和特殊字符的转义.可以使用原始模式禁用转义; 请参阅--raw选项的说明.

--skip-column-names,-N

不要在结果中写入列名.

--html,-H

生成HTML输出.