Sometimes an idea that’s been staring you in the face has to jump up and down and wave its hands to get attention.
I was working with Katrin Fischer, Koha’s QA manager, who had just finished putting together a fresh Koha testing environment on her laptop so that she can do patch review during KohaCon’s hackfest. She mentioned wishing that something like MarcEdit were on her laptop so that she could quickly edit some records for testing. While MarcEdit could be run under WINE or Mono or in a Windows virtual machine, inspiration struck me: with a little help,
vim makes a perfectly good basic MARC editor.
Here’s how — if you start with a file of MARC records, you can convert them to a text file using
yaz-marcdump records.mrc > records.txt
The resulting text file will look something like this:
01453cx a22003253 4500 001 412 005 20130407182653.0 009 026380498 035 $a 027861902 $9 xxx 035 $a frBN000018685 035 $a frBN002192923 035 $a FRBNF118639177 100 $a 20130407 frey50 101 $a fre 102 $a FR 103 $a 1879 106 $a 0 $b 1 $c 0 150 $a a 152 $a AFNOR $b CO 210 01 $7 ba0yba0y $9 0 $a France $b Direction des monnaies et médailles 340 $7 ba0yba0y $a 11 Quai de Conti, 75270 Paris Cedex 06 410 01 $7 ba0yba0y $9 # $a France $b Administration des monnaies et médailles 410 01 $7 ba0yba0y $9 # $a France $b Ministère de l'économie, des finances et du budget $c 1984-1986 $b Direction des monnaies et médailles
To edit the records on the command line, you can use
vim (or whatever your favorite text editor is). When you’re done, to convert them back to MARC, use
yaz-marcdump -i line -o marc records.txt > edited-records.mrc
To avoid mangling special characters, it’s helpful to use UTF8 as the character encoding.
yaz-marcdump can also be used to convert a MARC file to UTF8. For example, if the original MARC file uses the MARC-8 encoding, you could do:
yaz-marcdump -f marc8 -t utf8 records.mrc > records.txt
Not particularly profound, perhaps — and the title of this post is a bit tongue-in-cheek — but I know that this technique will save me a bit of time.