¿Hay un equivalente de shell de preg_match de PHP?Shell equivalente de php preg_match?
Estoy tratando de extraer el nombre de la base de datos de esta cadena en un script de shell.
define('DB_NAME', 'somedb');
Uso de preg_match en PHP Podría hacer algo como esto.
preg_match('define(\'DB_NAME\','(.*)'\'\)',$matches);
echo $matches[1];
¿Cómo puedo lograr lo mismo en un script de shell?
Gracias por la respuesta rápida. Stackoverflow es increíble. Cualquier posibilidad de que esté dispuesto a explicar cómo funciona el resultado "eval = ($ {t ##,}"? –
está jugando con el hecho de que la substición vuelve con '); al final esto es bueno, pero no scalabale mucho (es decir: fácil de modificar) pero agradable ... –
$ {t ## *,} borra la cadena de prefijo hacia arriba a través de ",", ver sh (1) o bash (1). Esto deja 'somedb'); para tratar, así que agregue result = (al frente con un eval, que eliminó las comillas y aprovechó el hecho de que bash te permite hacer asignaciones con = (...). CB es un poco correcto, pero se perdió la peor parte de esta expresión: creo que es un bashismo, y que no funcionaría en un shell de posix. – DigitalRoss