解析配置文件

时间:2012-10-01 20:11:56

标签: regex bash sed grep

我想用单引号获得第一个模式。

$ cat test 
if (response == 'good' and name == 'john')

使用此命令,我得到单引号中的最后一个模式:

$ sed -nr "s/.*'(.*)'.*/\1/p" test
john

我希望它返回

  

3 个答案:

答案 0 :(得分:1)

以下应该做的伎俩

sed -nr "s/[^']*'([^']*)'.*/\1/p" test

答案 1 :(得分:1)

有几种方法可以实现这一目标。例如awk

awk -F"'" '{print $2}'

Perl

perl -ne 'print "$1\n" if /'"'"'(.*?)'"'"'/;'

答案 2 :(得分:0)

使用这个概念

sed "s/^[a-z].* ([a-z].*== '\([a-z].*\)' [a-z].*== '\([a-z].*\)')$/\1/" inputfile