This is an automated email from the git hooks/post-receive script. js pushed a commit to annotated tag upstream/1.19 in repository libcatmandu-marc-perl.
commit 3f98196dc9a313d666ece508d52bccaca6bb12b6 Author: Patrick Hochstenbach <[email protected]> Date: Thu Jul 20 11:34:32 2017 +0200 Adding the rename of MARC fields to the tutorial --- lib/Catmandu/MARC/Tutorial.pod | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/lib/Catmandu/MARC/Tutorial.pod b/lib/Catmandu/MARC/Tutorial.pod index febddf6..8e8ffdc 100644 --- a/lib/Catmandu/MARC/Tutorial.pod +++ b/lib/Catmandu/MARC/Tutorial.pod @@ -232,6 +232,35 @@ output $ catmandu -D convert MARC to Null --fix myfix.fix < data.mrc +=head2 Rename MARC subfields + +In the example below we rename each $1 subfield in the MARC record to $0 using +the L<Catmandu::Fix::marc_cut>, L<Catmandu::Fix::marc_paste> and L<Catmandu::Fix::rename> +fixes: + + # For each marc field... + do marc_each() + # Cut the field into tmp.. + marc_cut(***,tmp) + + # Rename every 1 subfield to 0 + rename(tmp.*.subfields.*,1,0) + + # And paste it back + marc_paste(tmp) + end + +Put this Fix script in a file C<myfix.fix> and execute the Catmandu command: + + $ catmandu convert MARC to MARC --fix myfix.fix < data.mrc > output.mrc + +The C<marc_each> bind will loop over all the MARC fields. With C<marc_cut> we +store any field (C<***> matches every field) into a C<tmp> field. The C<marc_cut> +creates an array structure in C<tmp> which is easy to process using the Fix +language. Using the C<rename> function we search for all the subfields, and replace +the field matching the regular expression C<1> with C<0>. At the end, we paste +back the C<tmp> field into the record. + =head1 WRITING =head2 Convert a MARC record into a MARC record (do nothing) -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/libcatmandu-marc-perl.git _______________________________________________ Pkg-perl-cvs-commits mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-perl-cvs-commits
