gpt4 book ai didi

json - 如何将文本文件拆分为多个文件并从行前缀中提取文件名?

转载 作者:太空宇宙 更新时间:2023-11-04 04:40:06 25 4
gpt4 key购买 nike

我有一个简单的日志文件,其内容如下:

1504007980.039:{"key":"valueA"}
1504007990.359:{"key":"valueB", "key2": "valueC"}
...

我想输出到多个文件,每个文件都包含时间戳后面的 JSON 部分作为内容。所以我会得到文件的结果:

1504007980039.json
1504007990359.json
...

这类似于 How to split one text file into multiple *.txt files?但文件名应该从每一行中提取(并删除多余的点),而不是通过索引生成

我最好想要一个可以在 bash 中执行的单行代码。

最佳答案

由于您没有使用 GNU awk,因此您需要关闭输出文件以避免“打开文件过多”错误。为了避免这种情况以及 JSON 中特定值的问题以及与输出重定向期间未定义行为相关的问题,您需要这样做:

awk '{
fname = $0
sub(/\./,"",fname)
sub(/:.*/,".json",fname)
sub(/[^:]+:/,"")
print >> fname
close(fname)
}' file

如果您发现这样做有一些好处,您当然可以将其压缩到一行:

awk '{f=$0;sub(/\./,"",f);sub(/:.*/,".json",f);sub(/[^:]+:/,"");print>>f;close(f)}' file

关于json - 如何将文本文件拆分为多个文件并从行前缀中提取文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45939380/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com