匹配后的Grep数字

匹配后的Grep数字,grep,Grep,我想在匹配后将括号内的数字变灰 给定以下foo.txt foo: "32.1" bar: "42.0" misc: "52.3" 我想提取条形图后面的数字,42.0 下一行将匹配,但我想提取数字。我想我可以通过管道将输出返回到grep中,查找\d+。\d+,但是有更好的方法吗 grep -o -P 'bar: "\d+.\d+"' foo.txt 一种方法是使用“向前看”和“向后看”断言: grep -o -P '(?<=bar: ")\d+.\d+(?=")' 一种方法是使用“向前

我想在匹配后将括号内的数字变灰

给定以下
foo.txt

foo: "32.1" bar: "42.0" misc: "52.3"
我想提取条形图后面的数字,
42.0

下一行将匹配,但我想提取数字。我想我可以通过管道将输出返回到grep中,查找
\d+。\d+
,但是有更好的方法吗

grep -o -P 'bar: "\d+.\d+"' foo.txt

一种方法是使用“向前看”和“向后看”断言:

grep -o -P '(?<=bar: ")\d+.\d+(?=")'

一种方法是使用“向前看”和“向后看”断言:

grep -o -P '(?<=bar: ")\d+.\d+(?=")'

您也可以使用下面的grep

$ echo 'foo: "32.1" bar: "42.0" misc: "52.3"' | grep -oP 'bar:\s+"\K[^"]*(?=")'
42.0

您也可以使用下面的grep

$ echo 'foo: "32.1" bar: "42.0" misc: "52.3"' | grep -oP 'bar:\s+"\K[^"]*(?=")'
42.0

令人惊叹的!我不知道这些。:-)关于Perl中的前瞻和后顾断言的更多信息可以在这里找到:真棒!我不知道这些。:-)有关Perl中的前瞻和后顾断言的更多信息,请参见: