基本上我有一个 file.log 如下
blah blah
blah blah
Hello world | {"foo": "bar"}
blah blah
Hello earth | {"foo1": "bar1"}
Run Code Online (Sandbox Code Playgroud)
现在我的目标是编写一些 shell 命令来获得如下输出:
Hello earth | "bar"
Hello earth | "bar1"
Run Code Online (Sandbox Code Playgroud)
目前这是我所拥有的:
grep Hello file.log | awk -F "|" '{print $1, system("jq " $2)}'
Run Code Online (Sandbox Code Playgroud)
但是调用 jq 给了我这个错误:
jq: error: syntax error, unexpected ':', expecting $end (Unix shell quoting issues?) at <top-level>, line 1:
bin:application
jq: 1 compile error
Run Code Online (Sandbox Code Playgroud)
我想是因为在 system() 里面,我的 $12 被去掉了所有的引号字符 (") 因此 JQ 无法识别它的 json。有什么建议吗?