0

ファイルに次のような行があります。

$db['foo']['database'] = 'bar';

その文字列から戻るには、ack や grep などを使用したいと考えてbarいます。これまでのところ、私は持っています:

ack '^\$db\['\''foo'\''\]\['\''database'\''\] = '\''([\w_]+)'\' $file

しかし、行全体ではなく、最初の後方参照だけを吐き出す方法がわかりません。

4

1 に答える 1

0

おそらくperl助けることができます:

の内容script.pl:

use warnings;
use strict;

while ( <> ) {
        printf qq[%s\n], $1 if m/\A\$db\['foo'\]\['database'\]\s*=\s*'([^']+)'.*\Z/;
}

の内容infile:

$db['foo']['database'] = 'bar';

次のように実行します。

perl script.pl infile

次の出力で:

bar
于 2012-04-24T17:49:06.033 に答える