PHP設定ファイルから資格情報を解析します。

PHP設定ファイルから資格情報を解析します。

設定ファイルのデータを解析するbashスクリプトを作成したいと思います。これを検索しましたが、必要に応じて変更できる項目が見つかりませんでした。

ちょっと!構成ファイル:

   public $access = '1';
   public $debug = '0';
   public $debug_lang = '0';
   public $dbtype = 'mysqli';
   public $host = 'localhost';
   public $user = 'template';
   public $password = 'template';
   public $db = 'template_druha';
   public $dbprefix = 'dsf1i_';
   public $live_site = '';
   public $secret = '2w9gHzPb4HfAs2Y9';
   public $gzip = '0';
   public $error_reporting = 'default';

"$user"データベース資格情報を使用して解析し、"$password"それを変数に保存したいと思います。ベストプラクティスは何ですか?

ベストアンサー1

GNUを使用すると、grep次のことができます。

user=$(grep -oP "\\\$user.+?'\K[^']+" file)
pass=$(grep -oP "\\\$password.+?'\K[^']+" file)

Perl互換の正規表現を有効にする-Pと、私たちに提供されます\K(これまでの一致は無視されます)。-o「行内の一致する部分のみを印刷します。次の項目まで単一引用符と1つ以上の非文字を検索します(変数の拡張を避け、正規表現の一部と見なされない場合は3つが$var必要です)。\$''

または、次のものを使用できますawk

user=$(awk -F"'" '/\$user/{print $2}' file)
pass=$(awk -F"'" '/\$password/{print $2}' file)

'ここでは、変数の値が2番目のフィールドになるようにフィールド区切り文字を設定しました。このawkコマンドは、一致する行の2番目のフィールドを印刷します。

おすすめ記事