首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >bash:从mysql查询中输出\n \t个字符

问bash:从mysql查询中输出\n \t个字符
EN

Stack Overflow用户
提问于 2010-07-29 00:13:02
回答 2查看 1.6K关注 0票数 1

我目前有

代码语言:javascript
复制
$ echo "`echo "use joomla; describe jos_content" | mysql --batch -u root -ppassword`"

我希望得到的输出如下所示

代码语言:javascript
复制
Field\tType\tNull\tKey\tDefault\tExtra\n

但我却得到了

代码语言:javascript
复制
Field   Type    Null    Key Default Extra

目前,我已经尝试了所有的项目。我可以使用mysql --html和sed,但是,只有在这不起作用的情况下,我才会去那里。

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-07-29 00:53:09

不是echo,而是sed是适合这项工作的工具。

代码语言:javascript
复制
echo "use joomla; describe jos_content" | mysql --batch -u root -ppassword \
       | sed 's/\t/\\t/g; s/$/\\n/'

或者,如果您真的希望所有输出都在一行中:

代码语言:javascript
复制
echo "use joomla; describe jos_content" | mysql --batch -u root -ppassword \
       | sed 's/\t/\\\\t/g' | while read line ; do echo -n $line\\n ; done

(注意sed调用中的四重转义)。

票数 1
EN

Stack Overflow用户

发布于 2010-07-29 00:15:35

删除外部回声:

代码语言:javascript
复制
echo "use joomla; describe jos_content" | mysql --batch -u root -ppassword

对输出执行echo操作会导致所有空格都被折叠。

编辑: MySQL不会输出您想要的转义字符(例如,文本\然后是t)。在bash中(您必须使用bash的printf),您可以使用以下命令获得近似值:

代码语言:javascript
复制
printf '%q' "$(echo 'use mysql; describe user;'|mysql --batch -u root '-ppassword')"

它将输出以下内容:

代码语言:javascript
复制
$'Field\tType\tNull\tKey\tDefault\tExtra\n

这是对shell使用的字符的引用。您还可以使用sed,如前所述。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3354940

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档