Tôi có một tệp .msg khá lớn được định dạng theo định dạng UIEE.
$ wc -l big_db.msg
8726593 big_db.msg
Về cơ bản, tệp được tạo thành từ các mục có độ dài khác nhau trông giống như thế này:
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
Đây là một ví dụ về hai mục, cách nhau bởi một dòng trống. Tôi muốn chia tập tin lớn này thành các tập tin nhỏ hơn mà không phá vỡ một mục nhập thành hai tập tin.
Mỗi mục riêng lẻ được phân tách bằng một dòng mới (một dòng hoàn toàn trống) trong tệp. Tôi muốn chia tập tin 8,7 triệu này thành 15 tập tin. Tôi hiểu rằng các công cụ như split
tồn tại nhưng tôi không chắc chắn làm cách nào để tách tệp mà chỉ tách nó trên một dòng mới để một mục nhập không bị chia thành nhiều tệp.
|
(như UR
, AA
, TI
) thích hợp cho số lượng các tập tin, thậm chí giống nhau để được chính xác?
csplit
cũng tồn tại.