我试图匹配一个模式,并将其设置为一个变量。
我有一个包含许多"value=key“的文件。我想找到键"fizz“的值。在文件中,我有一个字符串
fizz="something_cool"
我试图将其解析为:
cat file | grep fizz="(.*)"
我在想,它会给我组输出,然后我可以使用$1
来选择它。
我还玩转义字符和sed
和awk
。但我没办法让它起作用。
发布于 2019-12-09 17:00:01
您需要为使用未转义的(
和)
启用扩展正则表达式,并正确地使用引号模式:
grep -E 'fizz="(.*)"' file
但是,awk
在这里可能是更好的选择,因为它将在相同的命令中同时执行搜索和筛选。
你可以用:
awk -F= '$1 == "fizz" {gsub(/"/, "", $2); print $2}' file
something_cool
https://stackoverflow.com/questions/59253350
复制相似问题