LINUX.ORG.RU

OOBase vs grep


0

0

У меня скопилось порядка 4000 текстовых файлов объёмом порядка 100М. Нужно в них искать. Вопрос: имеет ли смысл импортировать их в OpenOffice Base или не будет особых преимуществ перед тем же grep-ом? Или есть что-то получше OOBase и доступное и под Windows?

Если кому интересно, файлы -- в формате CIF. Такого вида (много выбросил):

_audit_creation_method SHELXL97
_chemical_name_systematic
;
Ammonium trisilver
bis[fluorophosphate(V)]
;
_chemical_name_common ?
_chemical_formula_sum 'Ag3 F2 H4 N O6 P2'
_chemical_formula_weight 537.59
loop_
_symmetry_equiv_pos_as_xyz
'x, y, z'
'x+1/2, y+1/2, z+1/2'
_cell_length_a 30.895(4)
loop_
_atom_site_type_symbol
_atom_site_label
_atom_site_fract_x
_atom_site_fract_y
_atom_site_fract_z
Ag Ag1 0.03968(2) 0.75964(14) 0.86502(7)
Ag Ag2 0.03911(3) 0.33330(14) 0.36558(7)

Если имеет смысл, подскажите, пожалуйста, руководство по импорту подобных файлов.

★★★★

Смотря что искать, как часто и что с поиском делать.

В общем 100М не много и после первого поиска все файлы будут в дисковом кеше. Даже если их читать все время с диска, то прочитать 100М + поиск займет не более 5сек.

sdio ★★★★★
()
Ответ на: комментарий от sdio

> Смотря что искать,

Пример 1: в строке _chemical_formula_sum должно быть 'Cl K O3'. Пример 2: в строке _chemical_formula_sum должен присутствовать Sb, в строке _symmetry_Int_Tables_number должно быть число в интервалах 3-9, 25-46, 75-82, 99-100 или 143-146, а в разделе _publ_author_name должен присутствовать Tromel или Troemel.

> как часто

Несколько раз в день. В худшем случае -- раз в минуту.

> и что с поиском делать.

Просматривать карточки на экране, либо скармливать cif-файл другой программе.

> 100М не много

А 500?

acheron ★★★★
() автор топика
Ответ на: комментарий от sdio

> grep/awk запаришься запросы соствалять.

Пример 2 достаточно редок, :) но бывает...

> Тебе надо что-либо с SQL интерфейсом.

То, что в ОО -- подойдёт? Плохо в базах разбираюсь, весь опыт сводится к нескольким дням работы с MS Access.

acheron ★★★★
() автор топика
Ответ на: комментарий от sdio

iirc он и к серверам умеет подключаться, mysql, postgre...... SQL в таких запросах будет действительно лучше, но вот как ты все это будешь туда перегонять я не знаю (я правильно понял, что у тебя что-то вроде дерева).

YesSSS ★★★
()
Ответ на: комментарий от YesSSS

> у тебя что-то вроде дерева

Нет, просто много независимых текстовых файлов. Внутри файла один и тот же набор полей (в примере _atom_site_type_symbol, _atom_site_label, _atom_site_fract_x, _atom_site_fract_y и _atom_site_fract_z) может повторяться несколько раз. Вопрос -- во что и как их легче перегнать?

В связи с поломкой компьютера вопрос отпал на несколько недель :)

acheron ★★★★
() автор топика
Ответ на: комментарий от acheron

> Вопрос -- во что и как их легче перегнать?

При особо большом желании можно и седом обойтись (генерить insert-ы из файлов), но репу чесать тебе точно придется.

В твоем случае вероятно нужно будет сделать одну основную таблицу(для полей, одинаковых во всех файлах) и одну дополнительную: для полей, которые могут повторяться и внешний ключ. Связи один-ко-многим обычно так и реализуются.

Если нагенеришь insert-ы то дальше можешь их применять к любой базе.

во вторую таблицу пойдут поля _atom_site_type_symbol, _atom_site_label, _atom_site_fract_x, _atom_site_fract_y и _atom_site_fract_z и номер записи в первой таблице.

в первую - все остальные.

YesSSS ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.