chr
7 つの列 ( 、pos
、num
、iA
、iB
、 )を持つ MySQL データベースとiC
、iD
それぞれにデータセットを含む 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で直接、このタスクを解決するにはどうすればよいですか?