【发布时间】:2016-08-12 21:10:15
【问题描述】:
我在 bash 脚本中使用 jq 将 json 文件解析为文本,反之亦然。
我在尝试逐行解析文本文件以使其成为 json 对象时遇到了这个问题。
这是我的输入文件:
default
———————————
out 0-65535 0.0.0.0/0 -1
in 80 0.0.0.0/0 tcp
in 8080 0.0.0.0/0 tcp
in 21017 192.168.1.0/32 tcp
in 2379 0.0.0.0/0 udp
in 0-65535 sg-10fa3c75 -1
===========
dev-external
———————————
out 0-65535 4.1.0.0/32 -1
in 1-2 sg-10fa3c75 -1
in 21034 sg-10fa3c75 tcp
in 9418 24.115.129.102/32 tcp
in 80 0.0.0.0/0 tcp
in 8080 default tcp
in 21017 192.168.1.0/0 tcp
in 123-655 1.45.9.1/32 -1
===========
my-sg
———————————
out 0-65535 0.0.0.0/0 -1
in 80 0.0.0.0/0 tcp
in 8070 0.0.0.0/0 tcp
in 8080 0.0.0.0/0 tcp
in 21017 192.168.1.0/32 tcp
in 0-65535 sg-10fa3c75 -1
===========
我尝试使用 gawk 解析这个文件:
gawk 'BEGIN{RS="\n=+\n"; FS="\n"; ORS="\n"} { print $1 }'
返回:
default
dev-external
my-sg
但是当我使用 jq 解析这个时:
| jq -R . | jq -s .
我附加了这些不需要的转义字符。
[
"\u001b[3g\r\u001bH \u001bH \u001bH \u001bH \u001bH \u001bH \u001bH \u001bH \u001bH \u001bH \u001bH \u001bH \u001bH \u001bH \u001bH \u001bH\rdefault",
"dev-external",
"my-sg"
]
请帮忙。 谢谢。
【问题讨论】: