summaryrefslogtreecommitdiffstats
path: root/magic/Magdir/marc21
diff options
context:
space:
mode:
Diffstat (limited to 'magic/Magdir/marc21')
-rw-r--r--magic/Magdir/marc2130
1 files changed, 30 insertions, 0 deletions
diff --git a/magic/Magdir/marc21 b/magic/Magdir/marc21
new file mode 100644
index 0000000..bb4998e
--- /dev/null
+++ b/magic/Magdir/marc21
@@ -0,0 +1,30 @@
+#--------------------------------------------
+# marc21: file(1) magic for MARC 21 Format
+#
+# Kevin Ford (kefo@loc.gov)
+#
+# MARC21 formats are for the representation and communication
+# of bibliographic and related information in machine-readable
+# form. For more info, see https://www.loc.gov/marc/
+
+
+# leader position 20-21 must be 45
+# and 22-23 also 00 so far, but we check that later.
+20 string 45
+>0 search/2048 \x1e
+
+# leader starts with 5 digits, followed by codes specific to MARC format
+>>0 regex/1l (^[0-9]{5})[acdnp][^bhlnqsu-z] MARC21 Bibliographic
+!:mime application/marc
+>>0 regex/1l (^[0-9]{5})[acdnosx][z] MARC21 Authority
+!:mime application/marc
+>>0 regex/1l (^[0-9]{5})[cdn][uvxy] MARC21 Holdings
+!:mime application/marc
+>>0 regex/1l (^[0-9]{5})[acdn][w] MARC21 Classification
+!:mime application/marc
+>>0 regex/1l (^[0-9]{5})[cdn][q] MARC21 Community
+!:mime application/marc
+
+# leader position 22-23, should be "00" but is it?
+>>0 regex/1l (^.{21})([^0]{2}) (non-conforming)
+!:mime application/marc