regex - sed: How to extract only first occurance of value -


i have file settings.inc.php following content:

<?php define('_db_server_', 'mariadb'); define('_db_name_', 'organic'); define('_db_user_', 'prestashop'); define('_db_passwd_', 'prestashop'); 

i want extract these values bash, managed create following command:

sed -rn 's/^.*_db_name_'\'', '\''(\w+)'\''\);/\1/p' settings.inc.php 

this return organic, should, improve further. let's have kind of file:

<?php define('_db_server_', 'mariadb'); define('_db_name_', 'organic1'); define('_db_name_', 'organic2'); define('_db_user_', 'prestashop'); define('_db_passwd_', 'prestashop'); 

using above command on file get:

organic1 organic2 

the thing is: want command return 1 value, let's first one. can achieve without piping result second command?

if convert substitute command followed print command block operating on lines addressed pattern (containing) _db_name_, can quit after first match/print:

$ sed -rn "/_db_name_/ { s/.*'(\w+)'\);$/\1/p;q }" settings.inc.php organic1 

note q command after p.

also, sed script can simplified using outer double quotes , anchoring on end.


Comments

Popular posts from this blog

node.js - Node js - Trying to send POST request, but it is not loading javascript content -

javascript - Replicate keyboard event with html button -

javascript - Web audio api 5.1 surround example not working in firefox -