2017-01-05 1 views
1

私は、文字列からvalueを取得しようとしています:文字列から一重引用符内の値を抽出する方法は?

define('__mypassword', 'value'); 

私はこのためにcutgrepを使用しようとしています。

grep "__mypassword'" myfile.php | cut -d ',' -f 2 

これは私が引用符や中括弧または半列を必要としない'value');

を返します。複数のcutステートメントを使用せずに、どのように価値を引き出すのですか?

答えて

4

ユーズ使用awk

$ awk -F"'" '/__mypassword/{print $4}' <<< "define('__mypassword', 'value');" 
value 

これは、フィールド区切り文字を一重引用符に設定します。このようにして、第4要素を印刷するのは単なる第3引用の後の要素です。 /__mypassword/grep "__mypassword"として機能します。

ケースであなたも/__mypassword'\''/使用し、単一引用符と一致する必要があります(少しうるさいが、あなたは、単一引用符を含めるようにawk文を閉じる必要があります)。

3

単一引用符を数え、コンマをカウントしないでください:

grep "__mypassword'" myfile.php | cut -d"'" -f4 
0
kent$ grep -oP "[^']+(?='\))" <<<"define('__mypassword', 'value');" 
value 
関連する問題