我有一个文件,其中包含JSON数据之前的一些文本。 我正试图摆脱文本,只是保留JSON所以我正在使用:
sed -n '/{"data"/,$p' myfile.txt
此命令的结果在终端中正常工作 - 它只返回JSON但是当我使用以下命令将输出推送到文件时:
sed -n '/{"data"/,$p' myfile.txt > output.json
然后“output.json”仍然有一些文字。我知道我有一个问题,正确地逃避花括号,sed将我的{“数据”视为正则表达式,但我不知道如何避免这种情况。
答案 0 :(得分:0)
经过一些调查后,我发现生成原始“myfile.txt”(JSON +某些文本)的脚本(不是我的)添加了特殊字符。我想这些字符存在于文件中的事实使得系统认为这是一个二进制文件,因此我遇到了问题。
当我做“cat -v output.json”时,如果我只做“cat output.json”,我可以看到没有显示的附加文本。
作为一种解决方法,我修改了原始脚本,不添加其他一些文本。
使用修改过的脚本,可以使用sed解析生成的“myfile.txt”,上面的建议很有效。
感谢任何贡献并花时间帮助我的人。