如何使用grep提取大括号之间的内容?
我想使用grep只提取大括号之间的一个部分 我的日志文件:*如何使用grep提取大括号之间的内容?,grep,Grep,我想使用grep只提取大括号之间的一个部分 我的日志文件:* { * "path": "/root/power.doc" } 如何提取大括号之间的内容?grep不支持范围。您可以使用awk: awk '/\{/,/\}/ {if($0 ~ /path/){print $0}}' kylian.log * "path": "/root/power.doc" 编辑1
{
* "path": "/root/power.doc"
}
如何提取大括号之间的内容?
grep
不支持范围。您可以使用awk
:
awk '/\{/,/\}/ {if($0 ~ /path/){print $0}}' kylian.log
* "path": "/root/power.doc"
编辑1:
下面是一个用于测试的修改文件:
$ cat kylian.log
* "path": "/root/power_before.doc"
--- before
+++ after
@@ -1,4 +1,4 @@
{
* - "mode": "0010",
* + "mode": "0030",
* "path": "/root/power.doc"
}
* "path": "/root/power_after.doc"
这里是我运行awk时的输出:
$ awk '/\{/,/\}/ {if( $0 ~ /path/){print $0}}' kylian.log
* "path": "/root/power.doc"
您的日志文件看起来像JSON文件上的diff,使用jq之类的JSON解析器直接访问该文件可能会更容易!但我的行动是有限的。