您好我正在处理大量数据的项目。我有一个包含键值对的大约2 GB的文本文件,每个键都有多个值。 我需要提取不同文件中的所有密钥,因为我需要用于测试特定功能的密钥。用于从文本文件中提取特定模式信息的脚本
文件的格式为:
:k: k1 :v: {XYZ:{id:"k1",score:0e0,tags:null},ABC:[{XYZ:{id:"k1",score:0e0,tags:null},PQR:[{id:"ID1",score:71.85e0,tags:[{color:"DARK"},{Type:"S1"},{color:"BLACK"}]},MetaData:{RuleId:"R3",Score:66.26327129015809e0,Quality:"GOOD"}},{XYZ:{id:"k1",score:0e0,tags:null},PQR:[..(same as above format)..],MetaData:{RuleId:"R3",Score:65.8234565409752e0,Quality:"GOOD"}} ::
//same pattern repeats with different keys, and a new line
当我搜索 “:K:” 用CTRL + F在文件中,这些键只得到强调。所以我认为这种模式是没有在文件中的行,除了开始的行
像这些有成千上万的键。
我想把所有这些密钥(k1,k2)提取到一个单独的文件中进行测试。
有多行:k:并且想要在单独的文件中分开(k1,k2,..)。我怎样才能做到这一点?
Python对我也很好。我可以在python中使用正则表达式,也可以使用“sed”shell命令。请在这里帮助我如何使用这些来提取密钥。
有人可以帮我写一个shell/python脚本。我知道它非常微不足道,但我是所有这类数据处理的新手。
同样专注于优化运行时间,因为数据非常大。
我不会称之为_very trivial_。你能否提供一个真实的文件示例(不包括'...') –
我已更新该文章!让我知道你想知道的其他事情! – user2621826
所以你想为文件中的每个“第一个单词”(:k :)创建一个单独的文件? ':k:'有多行?如果是这样,你想单独的文件包含所有':k:'记录,第一个,最后一个或? 。 (你的要求不清楚)。祝你好运。 – shellter