【发布时间】:2015-01-14 08:07:48
【问题描述】:
我有一个文件,其中包含 JSON 数据之前的一些文本。 我试图摆脱文本,只保留 JSON,所以我正在使用:
sed -n '/{"data"/,$p' myfile.txt
此命令的结果在终端中运行良好 - 它只返回 JSON,但是当我使用以下命令将输出推送到文件时:
sed -n '/{"data"/,$p' myfile.txt > output.json
那么“output.json”仍然有一些文本。我知道我在正确转义花括号时遇到问题,并且 sed 将我的 {"data" 视为正则表达式,但我不知道如何避免这种情况。
【问题讨论】:
-
请编辑您的 Q 以包含一组最小的 JSON 来说明问题。不要使用猜测;-)
-
不要使用面向行的工具来操作结构化数据。有很好的 JSON 工具可以正确理解输入格式并注意不要破坏它。
-
@shellter - 这是我作为 myfile.txt 的一个很好的例子:code.google.com/p/droidbox/issues/detail?id=59 我只想获取 JSON 数据。
-
@tripleee - 我知道 :) 但首先我需要从包含非 JSON 文本的文件中提取 JSON 数据。
-
尽管您的
sed没有成功的原因,一个简单的解决方法是awk '/^\{"data"/{p=1}p' myfile.txt >output.json
标签: json bash sed curly-braces