Esiste un equivalente shell del preg_match di PHP?equivalente shell di php preg_match?
Sto cercando di estrarre il nome del database da questa stringa in uno script di shell.
define('DB_NAME', 'somedb');
Uso di preg_match in PHP Ho potuto fare qualcosa del genere.
preg_match('define(\'DB_NAME\','(.*)'\'\)',$matches);
echo $matches[1];
Come posso ottenere lo stesso risultato in uno script di shell?
Grazie per la risposta rapida. Stackoverflow è fantastico. Qualunque possibilità si sarebbe disposti a spiegare come eval "result = ($ {t ## *,}" funziona? –
si sta giocando con il fatto che la sottotitoli ritorna con '); alla fine questo è bello ma non molto scalabile (es: facile da modificare) ma bello .... –
$ {t ## *,} cancella la stringa del prefisso attraverso ",", vedi sh (1) o bash (1). Questo lascia 'somedb'); per affrontare, quindi ho aggiunto risultato = (di fronte a un eval, che si è sbarazzato delle virgolette e ha approfittato del fatto che bash ti permette di fare assegnamenti con = (...). CB ha ragione, ma ha perso la parte peggiore di questa espressione: penso che sia un bashismo e non funzionerebbe in una shell posix – DigitalRoss