Tengo un archivo .msg bastante grande formateado en el formato UIEE.
$ wc -l big_db.msg
8726593 big_db.msg
Básicamente, el archivo está compuesto por entradas de varias longitudes que se parecen a esto:
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 es un ejemplo de dos entradas, separadas por una línea en blanco. Deseo dividir este archivo grande en archivos más pequeños sin dividir una entrada en dos archivos.
Cada entrada individual está separada por una nueva línea (una línea completamente en blanco) en el archivo. Deseo dividir este archivo de 8,7 millones de líneas en 15 archivos. Entiendo que split
existen herramientas como , pero no estoy muy seguro de cómo dividir el archivo, sino que solo se divide en una nueva línea para que una sola entrada no se divida en varios archivos.
|
(como UR
, AA
, TI
) relevante para el recuento de los archivos, incluso el mismo para ser exactos?
csplit
También existe.