经过 CSV 到 JSON 使用 BASH
我正试图隐藏以下内容 csv 格式化 json.
这是所需的格式 json, 我只是无法创造它。 下面我发布了我未完成的工作..任何帮助或方向都将受到赞赏......
不完整的工作。
$ 1是具有值的文件 csv, 插入上面。
问题是,当国家结束的价值时,我看起来我找不到一种方法。
Africa,Kenya,NAI,281
Africa,Kenya,NAI,281
Asia,India,NSI,100
Asia,India,BSE,160
Asia,Pakistan,ISE,100
Asia,Pakistan,ANO,100
European Union,United Kingdom,LSE,100
这是所需的格式 json, 我只是无法创造它。 下面我发布了我未完成的工作..任何帮助或方向都将受到赞赏......
{"name":"Africa",
"children":[
{"name":"Kenya",
"children":[
{"name":"NAI","size":"109"},
{"name":"NAA","size":"160"}]}]},
{"name":"Asia",
"children":[
{"name":"India",
"children":[
{"name":"NSI","size":"100"},
{"name":"BSE","size":"60"}]},
{"name":"Pakistan",
"children":[
{"name":"ISE","size":"120"},
{"name":"ANO","size":"433"}]}]},
{"name":"European Union",
"children":[
{"name":"United Kingdom",
"children":[
{"name":"LSE","size":"550"},
{"name":"PLU","size":"123"}]}]}
不完整的工作。
$ 1是具有值的文件 csv, 插入上面。
#!/bin/bash
pcountry=$/head -1 $1 | cut -d, -f2/
cat $1 | while read line ; do
region=$/echo $line|cut -d, -f1/
country=$/echo $line|cut -d, -f2/
code=$/echo $line|cut -d, -f3-/
size=$/echo $line|cut -d, -f4/
if test "$pcountry" == "$country" ;
then
echo -e {\"name\":\"$region\", '\n' \"children\": [ '\n'{\"name\":\"$country\",'\n'\"children\": [ '\n' \{\"name\":\"NAI\",\"size\":\"$size\"\}
else
if test "$pregion" == "$region"
then :
else
echo -e ,'\n'{\"name\":\""$region\", '\n' \"children\": [ '\n'{\"name\":\"$country\",'\n'\"children\": [ '\n' \{\"name\":\"NAI\",\"size\":\"$size\"\},
pcountry=$country
pregion=$region
fi ; done
问题是,当国家结束的价值时,我看起来我找不到一种方法。
没有找到相关结果
已邀请:
2 个回复
喜特乐
赞同来自:
嵌入式命令; 和脚本 shell 用于组合标准命令 unix, 如
,
,
等等。您必须选择为这种迭代分析创建的最佳语言。/处理以解决您的问题。
然而,由于为时已晚,我喝了太多的咖啡,我收集了一个剧本
/
有几个位
, 添加以帮助句法
分析/, 举例说明
您拥有的数据和显示 JSON 以您指出的格式。 这是一个场景:
这里是上面脚本的结果输出:
请勿在任何工业环境中使用类似上面类似的代码。
詹大官人
赞同来自:
https://stedolan.github.io/jq/
.
如果一个
包含以下过滤器
和
包含数据示例,然后命令
生产