-
Notifications
You must be signed in to change notification settings - Fork 0
/
gen-element-counts.sh
executable file
·134 lines (124 loc) · 1.43 KB
/
gen-element-counts.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
#!/bin/bash
# This script counts the occurrences of opening XML tags included in the list below
# usage: $0 <path to xml file>
# output:
#
set -u
ELEMENTS='abstract
accessrestrict
accruals
acqinfo
address
addressline
altformavail
appraisal
archdesc
archref
arrangement
bibliography
bibref
bioghist
blockquote
c
change
chronitem
chronlist
colspec
container
controlaccess
corpname
creation
custodhist
dao
daodesc
daogrp
daoloc
date
defitem
did
dimensions
dsc
eadheader
eadid
editionstmt
emph
entry
event
eventgrp
extent
extptr
extref
famname
filedesc
fileplan
function
genreform
geogname
head
index
indexentry
item
langmaterial
language
langusage
legalstatus
list
materialspec
name
note
notestmt
num
occupation
odd
originalsloc
origination
otherfindaid
p
persname
physdesc
physfacet
physloc
phystech
prefercite
processinfo
profiledesc
publicationstmt
relatedmaterial
repository
revisiondesc
row
scopecontent
separatedmaterial
subject
table
tbody
tgroup
title
titleproper
titlestmt
unitdate
unittitle
userestrict
'
if [[ $# -ne 1 ]]; then
echo "incorrect number of arguments" >&2
echo "usage: $0 <path to EAD xml file>" >&2
exit 1
fi
file="$1"
if [[ ! -r "$file" ]]; then
echo "ERROR: $file is not readable" >&2
exit 1
fi
printf "FILE,"
for e in $ELEMENTS; do
printf "$e,"
done
printf "\n"
printf "$file,"
for e in $ELEMENTS; do
regexp="<$e(\s+|>)"
result=$(grep -c -E "$regexp" "$file")
printf "$result,"
done
printf "\n"