2010-06-02 1 views
3

У меня огромный (4,5 ГБ) файл csv. Мне нужно выполнить базовую вырезку и вставку, заменить операции для некоторых столбцов .. данные довольно хорошо организованы. единственная проблема - я не могу играть с ней в Excel из-за размера (2000 строк, 550000 столбцов).Чтение/запись/поиск/замена огромного файла csv

вот некоторая часть данных:

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 и каждый? На 0 во втором столбце; Мне нужно заменить F на 2, M 1 и? с 0 на 3-й колонке,

, так что в конечном файле вывод гласит:

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

вы могли бы рассмотреть инструменты, такие как [СЭД и AWK] (http://www.faqs.org/ docs/abs/HTML/sedawk.html) – miku

+1

Почему бы просто не прочитать строку данных, проанализировать как запятую, выполнить нужные действия, записать новую строку с разделителями-запятыми в новый файл, вернуться к шагу 1. Если ваши данные очистить, тогда вы можете просто разделить строку на запятую или выполнить синтаксический анализ с помощью основных правил csv или даже регулярное выражение. Я не понимаю, что так сложно? – 2010-06-02 13:26:23

ответ

1

Вам нужны две вещи:
- Знание регулярных выражений (ака Regex, Регулярные выражения)
- PowerGrep

 Смежные вопросы

  • Нет связанных вопросов^_^