55 lines
1.4 KiB
Bash
Executable File
55 lines
1.4 KiB
Bash
Executable File
#!/usr/bin/env sh
|
|
|
|
# target filename
|
|
tn="dhl-ds-versendung.csv"
|
|
|
|
# todo: download file (its UTF-8 encoded)
|
|
|
|
fn="dhl-ds-versendung-3.csv"
|
|
# backup
|
|
cp -f "$fn" "dhl.csv"
|
|
|
|
# replace special spaces and hyphens
|
|
sed -i -e 's/[\u00A0\u202F[:space:]]+/ /g' -e 's/[\u2010\u2011\u2012\u2013\u002D]+/-/g' -e 's/[\u00AD\uFEFF]+//g' "$fn"
|
|
|
|
# todo: convert encoding from UTF-8 to CP1252 "Windows"
|
|
|
|
# a possibility for conversion? seems not to be reliant
|
|
#~ iconv -o "$tn" -f UTF-8 -t CP1252 "$fn"
|
|
|
|
# todo: validate length for entries
|
|
|
|
# todo: convert country to countrycode as in ISO3
|
|
iso3countrycode () {
|
|
if test "$#" -eq 0 ; then
|
|
echo "argument missing. ($0)"
|
|
else
|
|
case "$1" in
|
|
Belgien) echo "BEL";;
|
|
Deutschland) echo "DEU";;
|
|
England) echo "GBR";;
|
|
Luxemburg|Luxembourg) echo "LUX";;
|
|
Niederlande) echo "NLD";;
|
|
Österreich) echo "AUT";;
|
|
Schweiz) echo "CHE";;
|
|
Ungarn) echo "HUN";;
|
|
*) echo "unknown country: $1";exit 1;;
|
|
esac
|
|
fi
|
|
}
|
|
|
|
testiso3 () {
|
|
# covering data in https://doku.ccc.de/index.php?title=Attribut:Chaostreff-Country&limit=500&offset=0
|
|
iso3countrycode "Belgien"
|
|
iso3countrycode "Deutschland"
|
|
iso3countrycode "England"
|
|
iso3countrycode "Luxembourg"
|
|
iso3countrycode "Luxemburg"
|
|
iso3countrycode "Niederlande"
|
|
iso3countrycode "Österreich"
|
|
iso3countrycode "Ungarn"
|
|
iso3countrycode "Schweiz"
|
|
iso3countrycode "Simbabwe" # should fail
|
|
}
|
|
testiso3
|