我有一个带有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"
}
......
有什么主意吗?
答案 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
无论如何,请注意不需要引入任何命名变量。