首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从shell脚本读取MySQL结果

问从shell脚本读取MySQL结果
EN

Stack Overflow用户
提问于 2014-12-29 10:20:43
回答 1查看 100关注 0票数 0

首先,我是一个非常新的shell脚本,所以请不要射击我!)

我想做的事。我有一个多站点WordPress安装,我喜欢编写一个脚本,它可以通过在shell脚本中传递站点id作为参数,或者通过设置一个选项来导出模式的所有selected表,从而从模式导出特定的表。

为了识别哪个表集是哪个站点的表集,WordPress更改每个表集的前缀。因此,在示例中,如下所示:

代码语言:javascript
复制
wp_options
wp_1_options
...
wp_x_options

此外,WordPress将博客id存储在一个名为wp_blogs的特殊表中。

因此,在我的shell脚本中,我运行了以下代码:

代码语言:javascript
复制
mysql -uUSER -pPASS -e 'SELECT `blog_id` AS `ID`, `path` AS `Slug` FROM `wp`.`wp_blogs`'

我得到了以下结果

代码语言:javascript
复制
+----+---------------------------+
| ID | Slug                      |
+----+---------------------------+
|  1 | /                         |
|  2 | /site-2-slug/             |
|  4 | /site-4-slug/             |
|  5 | /site-5-slug/             |
|  6 | /site-6-slug/             |
|  7 | /site-7-slug/             |
|  8 | /site-8-slug/             |
|  9 | /site-9-slug/             |
| 10 | /site-10-slug/            |
+----+---------------------------+

因此,现在的实际问题是,如何逐行解析MySql结果,以获取ID和Slug信息?

侧注1:整个脚本已经生成并以某种方式手动运行。我现在需要这些信息,以便更加自动化导出脚本。

*侧注2:通过Vagrant ssh执行的MySql,如下所示:*

代码语言:javascript
复制
sudo vagrant ssh --command "mysql -uroot -proot -e 'SELECT blog_id FROM wp.wp_blogs'"
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-29 10:27:37

可以使用以下方式将结果保存在文件中:

代码语言:javascript
复制
SELECT blog_id, path FROM wp.wp_blogs
INTO OUTFILE '/tmp/blogs.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'

然后您可以逐行处理它,无论是使用And /awk/simple循环。假设您想搜索站点并将其替换为mysite,您可以这样做:

代码语言:javascript
复制
awk -F',' '{print "Id: " $1 ", path: "$2}' /tmp/blogs.csv  ##or simply cat the file.
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27686995

复制
相关文章

相似问题

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