我有具有不同行长度的 test.json 文件。一些虚构的例子:
{ "a" : 123, "b": "sd", "c": 45, "d": 1, "e": "" }
{ "a": 5, "b": "bfgg", "c": "x4c", "d": 31, "e": "" }
我想只为每一行保留 b :
{ "b": "sd"}
{ "b": "bfgg"}
答案1
答案2
和磨坊主
$ mlr --json cut -f b test.json
{ "b": "sd" }
{ "b": "bfgg" }
答案3
使用jsonjson解析器:
json -f test.json -gac 'return console.log("{ \"b\": \"" + this.b + "\" }")'
在这种情况下,jq
这似乎是一个更好的工具,但我仍然认为json
它是解析 json 数据的一个非常好的工具。
答案4
您可以尝试使用cut
和sed
:
cut -d',' -f2 file | sed -e 's/^/{/' -e 's/$/ }/'
输出:
{ "b": "sd" }
{ "b": "bfgg" }