小编Luo*_*Son的帖子

如何在 awk 中调用 jq?

基本上我有一个 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。有什么建议吗?

grep awk quoting jq

3
推荐指数
1
解决办法
2651
查看次数

标签 统计

awk ×1

grep ×1

jq ×1

quoting ×1