2012-10-01 126 views
0

我想单引号中的第一个模式。解析配置文件

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

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

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

我想它返回

回答

1

以下应该做的绝招

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

谢谢! 这是一个很好的解决方案。 – goh3ah3dee

1

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

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

Perl

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

使用这个概念

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

也谢谢。 这是一个非常精确的形式。 – goh3ah3dee