读/写/查找/替换巨大的csv文件

时间:2010-06-02 13:05:13

标签: file csv replace cut-and-paste

我有一个巨大的(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列开始查找每个_字符,并用space()字符替换它; 我需要更换每一个?零(0); 我需要用标签替换每个逗号; 我需要删除第一行(具有列名; 我需要将每个0替换为1,每1替换2和每个?第2列为0; 我需要将F替换为2,M替换为1和?第3列为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功能..

1 个答案:

答案 0 :(得分:1)

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