Regex 使用shell进行正则表达式组匹配

Regex 使用shell进行正则表达式组匹配,regex,bash,shell,Regex,Bash,Shell,我试图匹配一个模式,并将其设置为一个变量 我有一个包含许多“value=key”的文件。我想找到键“fizz”的值。 在文件中我有这个字符串 fizz="something_cool" 我尝试将其解析为: cat file | grep fizz="(.*)" 我想它会给我组输出,然后我可以使用$1来选择它 我还玩转义字符和sed和awk。但我无法使其正常工作。您需要启用扩展正则表达式以使用unscaped(和),并正确引用模式以使其: grep -E 'fizz="(.*)"' file

我试图匹配一个模式,并将其设置为一个变量

我有一个包含许多“value=key”的文件。我想找到键“fizz”的值。 在文件中我有这个字符串

fizz="something_cool"
我尝试将其解析为:

cat file | grep fizz="(.*)"
我想它会给我组输出,然后我可以使用
$1
来选择它


我还玩转义字符和
sed
awk
。但我无法使其正常工作。

您需要启用扩展正则表达式以使用unscaped
,并正确引用模式以使其:

grep -E 'fizz="(.*)"' file
然而,
awk
在这里可能是更好的选择,因为它将在同一个命令中执行搜索和过滤

您只需使用:

awk -F= '$1 == "fizz" {gsub(/"/, "", $2); print $2}' file


对我需要调整一下,但这解决了手头的问题。非常感谢。
something_cool