Jonathan,

Using the as-yet-to-be-documented record editing capabilities of SolrMarc I think you can you what you want.

create a file named editor338.properties in the same directory and SolrMarc.jar that contains:
338=true
338_0=and(subfieldmatches("a", "online resource"),not(subfieldmatches("b","cr")))=>both(deletefield(),insertfield("338 $aonline resource$bcr"))

and run SolrMarc as a filter:

cat   my_records.mrc  |
java -Dsolrmarc.main.class="org.solrmarc.marc.MarcPrinter" -Dmarc.reader.remap=editor338.properties -jar SolrMarc.jar translate > my_edited_records.mrc


or you can even just add:

marc.reader.remap=editor338.properties

to your config.properties file, and the editing will be done as the records are read in for indexing.

-Bob


On 6/24/2014 12:39 PM, Jonathan Rochkind wrote:
Hi code4libbers,

I don't have much experience with MarcEdit, I'm hoping someone else does, especially with creating automated MarcEdit "tasks", and can advise:

Would it be possible to create a MarcEdit task that:

=> IF there is 338 field with subfield $a "online resource", THEN erase all existing subfield $b's in that field, and add a single subfield $b "cr".


We have records loaded from certain sources that have inconsistent 338$a and $b, where the $a is the reliable one. I'm curious if I can send records from these sources through a MarcEdit Task to correct this known pattern of error.

Anyone know if this is possible in a MarcEdit task? And if you could supply some hints to a complete newbie to MarcEdit on how to do it, that would be quite kind of you!

Jonathan

Reply via email to