0

chr7 つの列 ( 、posnumiAiB、 )を持つ MySQL データベースとiCiDそれぞれにデータセットを含む 4000 万行を含むファイルがあります。各行にはタブで区切られた 4 つの列があり、最初の 3 つの列には常にデータが含まれ、4 番目の列にはkey=valueセミコロンで区切られた最大 3 つの異なるペアを含めることができます。

chr   pos   num   info
1     10203 3     iA=0.34;iB=nerv;iC=45;iD=dskf12586
1     10203 4     iA=0.44;iC=45;iD=dsf12586;iB=nerv
1     10203 5     
1     10213 1     iB=nerv;iC=49;iA=0.14;iD=dskf12586
1     10213 2     iA=0.34;iB=nerv;iD=cap1486
1     10225 1     iD=dscf12586

列情報のキー=値のペアには、特定の順序はありません。また、キーが 2 回発生する可能性があるかどうかもわかりません (発生しないことを願っています)。

データベースにデータを書き込みたい。最初の 3 つの列は問題ありませんが、情報列から値を抽出すると困惑します。key=value のペアは順序付けられておらず、すべてのキーが行にある必要はないからです。同様のデータセット (順序付けされた情報列を含む) の場合、正規表現に関連して Java-Programm を使用しました。これにより、(1) データのチェックと (2) 抽出が可能になりましたが、今は立ち往生しています。

できればbashスクリプトを使用するか、MySQLで直接、このタスクを解決するにはどうすればよいですか?

4

2 に答える 2