grep 命令从文件中提取数据

grep 命令从文件中提取数据

我有一个文件,其中包含以下行:

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

我正在尝试编写一个 shell 命令来 grep 该文件并仅返回 252。这是我目前所得到的:

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

如您所见,它找到了该行,但返回了所有内容。我只想要 252。您能告诉我我哪里出错了吗?

谢谢

答案1

一定要这样吗grep?你可以这样做awk

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

使用 GNU grep 至少您可以使用 perl 风格的正则表达式并像这样执行:

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

意思\K是不包括到那时为止匹配的所有内容作为选项匹配的一部分-o

相关内容