J'ai un fichier .msg assez volumineux formaté au format UIEE.
$ wc -l big_db.msg
8726593 big_db.msg
Essentiellement, le fichier est composé d'entrées de différentes longueurs qui ressemblent à ceci:
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
Ceci est un exemple de deux entrées, séparées par une ligne vierge. Je souhaite diviser ce gros fichier en fichiers plus petits sans casser une entrée en deux fichiers.
Chaque entrée individuelle est séparée par une nouvelle ligne (une ligne complètement vierge) dans le fichier. Je souhaite diviser ce fichier de 8,7 millions de lignes en 15 fichiers. Je comprends que des outils comme split
existent, mais je ne sais pas trop comment diviser le fichier, mais le diviser uniquement sur une nouvelle ligne afin qu'une seule entrée ne soit pas divisée en plusieurs fichiers.
|
(comme UR
, AA
, TI
) pertinents pour le nombre de fichiers, même le même pour être exact?
csplit
existe aussi.