我目前有
$ echo "`echo "use joomla; describe jos_content" | mysql --batch -u root -ppassword`"我希望得到的输出如下所示
Field\tType\tNull\tKey\tDefault\tExtra\n但我却得到了
Field Type Null Key Default Extra目前,我已经尝试了所有的项目。我可以使用mysql --html和sed,但是,只有在这不起作用的情况下,我才会去那里。
谢谢!
发布于 2010-07-29 00:53:09
不是echo,而是sed是适合这项工作的工具。
echo "use joomla; describe jos_content" | mysql --batch -u root -ppassword \
| sed 's/\t/\\t/g; s/$/\\n/'或者,如果您真的希望所有输出都在一行中:
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调用中的四重转义)。
发布于 2010-07-29 00:15:35
删除外部回声:
echo "use joomla; describe jos_content" | mysql --batch -u root -ppassword对输出执行echo操作会导致所有空格都被折叠。
编辑: MySQL不会输出您想要的转义字符(例如,文本\然后是t)。在bash中(您必须使用bash的printf),您可以使用以下命令获得近似值:
printf '%q' "$(echo 'use mysql; describe user;'|mysql --batch -u root '-ppassword')"它将输出以下内容:
$'Field\tType\tNull\tKey\tDefault\tExtra\n这是对shell使用的字符的引用。您还可以使用sed,如前所述。
https://stackoverflow.com/questions/3354940
复制相似问题