每个人。我对 linux 很陌生,我和你们一起阅读这个网站学到了很多东西。我的会计程序遇到了一些麻烦,这就是我经常向您提出的原因。我想将我的数据从纯文本移动到 json,我相信这会给我更好的结果和更大的灵活性。
我有一个文件夹,其中包含分隔文件中的信息。文件是这样的:
20170404
pago
80051442-4
002-001-0080057
310000
310000
si
2017-06-05
Run Code Online (Sandbox Code Playgroud)
我想将此信息复制到新文件中,其中每一行都是一个新的 json 字段。像这样的东西:
{
"field1":"20170404",
"field2":"pago",
"field3":"80051442-4",
"field4":"002-001-0080057",
"field5":"310000"
"field6":"",
"field7":"";
"field8":"310000"
"field9":"si"
"field10":"2017-06-05"
}
Run Code Online (Sandbox Code Playgroud)
我正在寻找一个脚本来读取整个目录并构建这些新文件: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
Run Code Online (Sandbox Code Playgroud)
谢谢大家的时间。
我会使用jq工具(一个合适的 JSON 解析/操作工具)来解决这个问题:
for f in *; do
jq -R -s 'rtrimstr("\n") | split("\n") | to_entries | reduce .[] as $o ({}; .["field" + ($o.key+1|tostring)] |= $o.value )' "$f" > "$f".json;
done
Run Code Online (Sandbox Code Playgroud)
-R(--raw-input)联合-s(--slurp) -整个输入传递到所述过滤器作为一个长字符串| 归档时间: |
|
| 查看次数: |
1022 次 |
| 最近记录: |