grep命令从文件中提取数据

我有一个文件,它有这条线:

$n22(s:Tstring) = "252"; 

我试图写一个shell命令来grep文件,只返回252.这是我迄今为止:

 grep -o '$n22(s:Tstring).*;' /etc/test/testfile.cfg $n22(s:Tstring) = "252"; 

正如你所看到的,它find了这条线,但它返回了一切。 我只想要252.你能告诉我我要去哪里吗?

谢谢

它是否必须是grep ? 你可以用awk来做:

 awk -F\" '/\$n22\(s:Tstring\)/ {print $2}' 

与GNU的grep至less你可以使用Perl风格的正则expression式,并像这样做:

  grep -Po '\$n22\(s:Tstring\)[^"]+"\K[^"]+' 

\K表示不包含与该点匹配的所有内容,作为-o选项匹配的一部分。