1#!/bin/sh
2
3hdr() {
4echo '#' '$'NetBSD'$'
5cat << _EOF
6#
7# ISO 3166-1 Country Codes
8#
9# The format of an entry is:
10# <Name><TAB><Alpha-2-code><TAB><Alpha-3-code><TAB><Numeric-3-code><TAB><FIPS>
11#
12# Further information can be found at the ISO 3166 Maintenance Agency
13# (ISO 3166/MA) web site, <http://www.iso.org/iso/country_codes>.
14#
15# FIPS 10-4 codes compiled from several sources, including
16# http://www.statoids.com/wab.html
17#
18# ISO 3166-1 entities without exactly one corresponding FIPS code have a
19# blank entry in the column. FIPS 10-4 codes without a corresponding
20# ISO 3166-1 entity are excluded.
21#
22# This list is up-to-date as of $(date +%Y-%m-%d)
23#
24_EOF
25}
26
27I1=wab.html
28U1=http://www.statoids.com/$I1
29O1=/tmp/wab.$$
30I2=country_names_and_code_elements_txt
31U2=http://www.iso.org/iso/$I2
32O2=/tmp/list.$$
33trap "rm -f $I1 $I2 $O1 $O2" 0 1 2 3 15
34ftp $U1
35ftp $U2
36
37grep '<tr class="[oe]">' $I1 |
38sed -e 's,<tr class="."><td>,,g' \
39    -e 's,\&nbsp;,,g' \
40    -e 's,<code>,,g' \
41    -e 's,</code>,,g' \
42    -e 's,<br>, ,g' \
43    -e 's,</td><td>,	,g' \
44    -e 's,�,Aa,g' \
45    -e 's,�,o,g' \
46    -e 's,</td></tr>,,g' |
47awk -F'\t' '{ printf("%s\t%s\t%s\t%s\t%s\n", $2, $3, $4, $6, $1); }' |
48grep -v href= |
49sort > $O1
50
51grep ';[A-Z][A-Z]' $I2 |
52tr -d '\015' |
53awk -F ';' '{ print $2 }' |
54sort > $O2
55
56hdr
57join -t '	' -o 1.5,1.1,1.2,1.3,1.4 -1 1 -2 1 $O1 $O2 | sort
58