将纯数据转换为json文件

何塞·冈萨雷斯(Jose A.冈萨雷斯)

每个人。我对linux还是很陌生,与大家一起阅读本站点可以学到很多东西。我在会计程序上遇到了麻烦,这就是为什么我经常向您介绍。我想将我的数据从纯文本移动到json,我相信它将为我带来更好的结果和更大的灵活性。

我有一个文件夹,其中包含单独文件中的信息。这些文件是这样的:

20170404
pago
80051442-4
002-001-0080057
310000


310000
si
2017-06-05

我想将此信息复制到新文件中,其中每一行都是一个新的json字段。像这样的东西:

{
"field1":"20170404",
"field2":"pago",
"field3":"80051442-4",
"field4":"002-001-0080057",
"field5":"310000"
"field6":"",
"field7":"";
"field8":"310000"
"field9":"si"
"field10":"2017-06-05"
}

我正在寻找一个脚本来读取整个目录并构建这些新文件:oldfile.json。

之后,我想在不同的列中对其中几个文件的结果进行制表:

file1    field1    field2    field3   field4    field5    field6    field7
file2    field1    field2    field3   field4    field5    field6    field7
file3    field1    field2    field3   field4    field5    field6    field7
file4    field1    field2    field3   field4    field5    field6    field7
file5    field1    field2    field3   field4    field5    field6    field7

谢谢大家的时间。

最小最大

回答第二部分-将json文件转换为表。

用法: ./json_to_table.sh *.json

#!/bin/bash

for i in "$@"; do
    file_content=$(sed -n 's/".*":"\(.*\)",\?/\1/p' "$i" | tr '\n' ' ')
    printf "%s %s\n" "$i" "$file_content"
done | column -t

如果您不需要漂亮的表格格式,则可以删除| column -t部分(在底部的之后done)。然后,行的字段将被一个空格分隔,因此,每个字段将具有自己的宽度。这是良好的通过程序,如解析awksed但不方便人们阅读。

注意:在json文件中的每个记录之后,除了最后一个记录,都应为逗号。我的意思是:

"field8":"310000", <- here
"field9":"si", <-here
"field10":"2017-06-05" <- not here. Last record without comma.
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章