3

我有一个巨大的 (4,5 GB) csv 文件.. 我需要执行基本的剪切和粘贴,替换某些列的操作.. 数据组织得很好.. 唯一的问题是我不能用 Excel 玩它,因为大小(2000 行,550000 列)。

这是数据的一部分:

ID,Affection,Sex,DRB1_1,DRB1_2,SENum,SEStatus,AntiCCP,RFUW,rs3094315,rs12562034,rs3934834,rs9442372,rs3737728

D0024949,0,F,0101,0401,SS,yes,?,?,A_A,A_A,G_G,G_G
D0024302,0,F,0101,7,SN,yes,?,?,A_A,G_G,A_G,?_?
D0023151,0,F,0101,11,SN,yes,?,?,A_A,G_G,G_G,G_G

我需要删除第 4、5、6、7、8 和 9 列;我需要从第 10 列开始找到每个 _ 字符并将其替换为空格 ( ) 字符;我需要更换每个?零(0);我需要用制表符替换每个逗号;我需要删除第一行(具有列名;我需要将每个 0 替换为 1,将每个 1 替换为 2,将每个 ? 替换为第二列中的 0;我需要将 F 替换为 2,将 M 替换为 1,将 ? 替换为 0第三栏;

以便在结果文件中输出读取:

D0024949 1 2 A A A A G G G G

D0024302 1 2 A A G G A G 0 0

D0023151 1 2 A A G G G G G G

(输入和输出都应该每行读取一行,额外的空白行)是否有一种内存有效的方式来使用java(我需要一个代码来做到这一点)或一个可用的工具来处理这些大数据,以便我可以轻松应用 Excel 功能..

4

1 回答 1

1

你需要两件事:
- 正则表达式知识(又名正则表达式,正则表达式)
- PowerGrep

于 2010-06-02T13:14:12.777 回答