And*_*per 6 php regex shell grep
有没有相当于PHP的preg_match的shell?
我正在尝试从shell脚本中的此字符串中提取数据库名称.
define('DB_NAME', 'somedb');
Run Code Online (Sandbox Code Playgroud)
在PHP中使用preg_match我可以做这样的事情.
preg_match('define(\'DB_NAME\','(.*)'\'\)',$matches);
echo $matches[1];
Run Code Online (Sandbox Code Playgroud)
如何在shell脚本中完成相同的操作?
$ t="define('DB_NAME', 'somedb');"
$ echo $t
define('DB_NAME', 'somedb');
$ eval "result=(${t##*,}"
$ echo $result
somedb
$
Run Code Online (Sandbox Code Playgroud)
那个确实包含了 bashism,虽然它可以在大多数开箱即用的环境中工作,但为了坚持 posix shell 功能,请使用更笨重的版本:
t="define('DB_NAME', 'somedb');"
r="${t##*,}"
r="${r%);*}"
r=`eval echo $r`
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10037 次 |
| 最近记录: |