繁体   English   中英

sed,JSON和花括号

[英]sed, JSON and curly braces

我有一个在JSON数据之前包含一些文本的文件。 我试图摆脱文本,只保留JSON,所以我在使用:

sed -n '/{"data"/,$p' myfile.txt

该命令的结果在终端中运行良好-它仅返回JSON,但是当我使用以下命令将输出推送到文件时:

sed -n '/{"data"/,$p' myfile.txt > output.json

那么“ output.json”仍然有一些文字。 我知道我在正确转义花括号时存在问题,并且sed将{“ data”视为正则表达式,但是我不知道如何避免这种情况。

经过更多调查后,我发现生成原始“ myfile.txt”(JSON +一些文本)的脚本(不是我的脚本)添加了特殊字符。 我猜这些文件中存在这些字符的事实使系统认为这是一个二进制文件,因此我遇到了问题。

当我执行“ cat -v output.json”时,如果我只是执行“ cat output.json”,则可以看到未显示的其他文本。

作为一种解决方法,我修改了原始脚本,不添加一些其他文本。

使用修改后的脚本,可以使用sed解析生成的“ myfile.txt”,上面的建议非常有用。

感谢所有为帮助我而付出努力的人。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM