The yaz-marcdump utility[1], included in the YAZ toolkit[2], should work and I've found it to be blindingly fast.
-Tod
[1] http://www.indexdata.com/yaz/doc/yaz-marcdump.html
[2] http://www.indexdata.com/yaz
Tod Olson <[log in to unmask]>
Systems Librarian
University of Chicago Library
On Jan 26, 2010, at 2:34 AM, Marc Chantreux wrote:
> On Mon, Jan 25, 2010 at 11:48:47PM +0530, Saiful Amin wrote:
>> I also recommend using MARC::Batch. Attached is a simple script I wrote for
>> myself.
>
> I think MARC::Batch would be very slow to split lot of records. As 0x1d
> is your record separator, a perl oneliner can do the job:
>
> http://www.tinybox.net/2009/10/12/perl-onliners-vim-and-iso2709/
>
> perl -0x1d -wnE '
> # new file every 1000 records
> $. == 1 || ! ($. % 1000 )
> # with record number padded with 5 chars
> and open F,sprintf ">records_%.5d.mrc",$.;
> # actually prints the record
> print F
> ' bigfile.mrc
>
> if you file is UTF-8 encoded, use -CSD flags
>
> hope it helps
> regards
>
>
> --
> Marc Chantreux
> BibLibre, expert en logiciels libres pour l'info-doc
> http://biblibre.com
|