【发布时间】:2017-07-26 00:19:19
【问题描述】:
我有文件settings.inc.php,内容如下:
<?php
define('_DB_SERVER_', 'mariadb');
define('_DB_NAME_', 'organic');
define('_DB_USER_', 'prestashop');
define('_DB_PASSWD_', 'prestashop');
我想将这些值提取到bash,所以我设法创建了以下命令:
sed -rn 's/^.*_DB_NAME_'\'', '\''(\w+)'\''\);/\1/p' settings.inc.php
这将返回organic,就像它应该的那样,但我想进一步改进它。假设我们会有这样的文件:
<?php
define('_DB_SERVER_', 'mariadb');
define('_DB_NAME_', 'organic1');
define('_DB_NAME_', 'organic2');
define('_DB_USER_', 'prestashop');
define('_DB_PASSWD_', 'prestashop');
在这个文件上使用上面的命令,我们会得到:
organic1
organic2
问题是:我希望这个命令总是只返回一个值,所以我们说第一个。我可以在不将结果传递到第二个命令的情况下实现这一点吗?
【问题讨论】: