У меня довольно большой MSG-файл, отформатированный в формате UIEE.
$ wc -l big_db.msg
8726593 big_db.msg
По сути, файл состоит из записей различной длины, которые выглядят примерно так:
UR|1
AA|Condon, Richard
TI|Prizzi's Family
CN|Collectable- Good/Good
MT|FICTION
PU|G.P. Putnam & Sons
DP|1986
ED|First Printing.
BD|Hard Cover
NT|0399132104
KE|MAFIA
KE|FICTION
PR|44.9
XA|4
XB|1
XC|BO
XD|S
UR|10
AA|Gariepy, Henry
TI|Portraits of Perseverance
CN|Good/No Jacket
MT|SOLD
PU|Victor Books
DP|1989
BD|Mass Market Paperback
NT|1989 tpb g 100 meditations from the Book of Job "This book...help you
NT| persevere through the struggles of your life..."
KE|Bible
KE|religion
KE|Job
KE|meditations
PR|28.4
XA|4
XB|5
XC|BO
XD|S
Это примеры двух записей, разделенных пустой строкой. Я хочу разбить этот большой файл на более мелкие файлы, не разбивая записи на два файла.
Каждая отдельная запись отделяется новой строкой (абсолютно пустой строкой) в файле. Я хочу разбить этот 8,7 миллионов строк файла на 15 файлов. Я понимаю, что подобные инструменты split
существуют, но я не совсем уверен, как разбить файл, но разделяю его только на новую строку, чтобы одна запись не разбивалась на несколько файлов.
|
(например UR
, AA
, TI
) значение для подсчета файлов, даже тот же быть точным?
csplit
также существует.