从txt文件中提取JSON值,然后将其写入并用逗号分隔

时间:2018-10-02 15:18:45

标签: json bash

我有一个带有curl响应的txt文件,其中包含有关下载的数千个文件以及下载年份的信息。 我尝试(sed + grep)提取文件名失败,然后将它们写入用逗号分隔的单独文件(“ filname + year.txt”)中。

{"status_code":"200",
    "status_message":"Results found.",
    "results":[{"filename":"test189.pdf",
        "year":"2012",
        "URL":"https:\/\/www.orkistar.org\/random.php?q=iper.pdf&y=2012"
    } 
......

有什么主意吗?

2 个答案:

答案 0 :(得分:4)

使用JSON感知工具,例如jq

jq -r '.results[] as $r | $r.filename + "," + $r.year' < file.json

答案 1 :(得分:0)

jq具有用于转换为CSV的过滤器。假设目标是生成有效的CSV,使用它可以确保适当处理各种边缘情况:

jq -r '.results[] | [.filename, .year] | @csv' file.json

无论如何,请注意不需要引入任何命名变量。