我有一个文件,它有这条线:
$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选项匹配的一部分。