こんにちは私は大量のデータを扱うプロジェクトに取り組んでいます。私は約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"シェルコマンドを使うこともできます。これらを使ってキーを抽出する方法を教えてください。
誰かがシェル/パイソンスクリプトを書くのを助けることができますか?私は非常に些細なことは知っていますが、私はこの種のデータ処理の初心者です。
また、データが非常に大きいので、実行時間を最適化することにも焦点を当てます。
私はそのことを非常に些細なものと呼んでいません。あなたはファイルの本当の例を提供できますか?( '...'を除く) –
私は投稿を更新しました!あなたが知りたいことがあれば教えてください! – user2621826
ファイル内の「最初の単語」(:k :)ごとに別々のファイルを作成しますか? ':k:'には複数の行がありますか?そうであれば、別々のファイルにすべての ':k:'レコード、最初のもの、最後のもの、または??? 。 (あなたの要件は不明です)。がんばろう。 – shellter