Eu tenho um arquivo .msg bastante grande formatado no formato UIEE.
$ wc -l big_db.msg
8726593 big_db.msg
Essencialmente, o arquivo é composto de entradas de vários tamanhos que se parecem com isso:
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
Este é um exemplo de duas entradas, separadas por uma linha em branco. Desejo dividir esse arquivo grande em arquivos menores sem quebrar uma entrada em dois arquivos.
Cada entrada individual é separada por uma nova linha (uma linha completamente em branco) no arquivo. Desejo dividir esse arquivo de linha de 8,7 milhões em 15 arquivos. Entendo que split
existem ferramentas como essa, mas não tenho certeza de como dividir o arquivo, mas apenas o dividi em uma nova linha, para que uma única entrada não seja dividida em vários arquivos.
|
(como UR
, AA
, TI
) relevante para a contagem de arquivos, mesmo a mesma para ser exato?
csplit
também existe.