convert \n to \r\n for filecontent
This commit is contained in:
parent
ed1772e76d
commit
45694306b6
66
dhl.sh
66
dhl.sh
|
@ -1,5 +1,10 @@
|
||||||
#!/usr/bin/env sh
|
#!/usr/bin/env sh
|
||||||
dependencies="sed test cp libreoffice expr cut"
|
dependencies="sed test cp libreoffice expr cut"
|
||||||
|
|
||||||
|
# target filename
|
||||||
|
tn1="dhl-cp1252-n.csv"
|
||||||
|
tn2="dhl-cp1252-rn.csv"
|
||||||
|
|
||||||
assert_tools () {
|
assert_tools () {
|
||||||
while test $# -gt 0; do
|
while test $# -gt 0; do
|
||||||
which $1 >/dev/null 2>/dev/null || {
|
which $1 >/dev/null 2>/dev/null || {
|
||||||
|
@ -17,11 +22,28 @@ testcmp () {
|
||||||
echo "arguments missing."; exit 1
|
echo "arguments missing."; exit 1
|
||||||
fi
|
fi
|
||||||
# whitelisted functions
|
# whitelisted functions
|
||||||
case $2 in
|
case $2 in
|
||||||
|
# 2 arg functions where file exists
|
||||||
|
convnl)
|
||||||
|
expect="$1"
|
||||||
|
fn="$2"
|
||||||
|
shift 2
|
||||||
|
if test -e "$expect" ; then
|
||||||
|
echo "not testing as result $expect already exists."
|
||||||
|
else
|
||||||
|
result=$("$fn" "$1" "$2")
|
||||||
|
if test -e $expect ; then
|
||||||
|
echo "passed $fn for: $1 $2."
|
||||||
|
else
|
||||||
|
echo "failed $fn for: $1 $2."
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
;;
|
||||||
# 2 arg functions
|
# 2 arg functions
|
||||||
chklength|stringcrop)
|
chklength|stringcrop)
|
||||||
expect="$1"; shift
|
expect="$1"
|
||||||
fn="$1"; shift
|
fn="$2"
|
||||||
|
shift 2
|
||||||
while test "$#" -ge "2"; do
|
while test "$#" -ge "2"; do
|
||||||
result=$("$fn" "$1" "$2")
|
result=$("$fn" "$1" "$2")
|
||||||
if test "$result" = "$expect" ; then
|
if test "$result" = "$expect" ; then
|
||||||
|
@ -34,8 +56,9 @@ testcmp () {
|
||||||
;;
|
;;
|
||||||
# 1 arg functions
|
# 1 arg functions
|
||||||
iso3countrycode)
|
iso3countrycode)
|
||||||
expect="$1"; shift
|
expect="$1"
|
||||||
fn="$1"; shift
|
fn="$2"
|
||||||
|
shift 2
|
||||||
for a in "$@"; do
|
for a in "$@"; do
|
||||||
result=$("$fn" "$a")
|
result=$("$fn" "$a")
|
||||||
if test "$result" = "$expect" ; then
|
if test "$result" = "$expect" ; then
|
||||||
|
@ -61,7 +84,6 @@ testchklength () {
|
||||||
testcmp "true" "chklength" "3" "123"
|
testcmp "true" "chklength" "3" "123"
|
||||||
testcmp "3" "chklength" "2" "1-2"
|
testcmp "3" "chklength" "2" "1-2"
|
||||||
}
|
}
|
||||||
testchklength
|
|
||||||
|
|
||||||
stringcrop () {
|
stringcrop () {
|
||||||
echo "$1" | cut -c1-"$2"
|
echo "$1" | cut -c1-"$2"
|
||||||
|
@ -70,7 +92,6 @@ stringcrop () {
|
||||||
teststringcrop () {
|
teststringcrop () {
|
||||||
testcmp "string" "stringcrop" "string too long" "6"
|
testcmp "string" "stringcrop" "string too long" "6"
|
||||||
}
|
}
|
||||||
teststringcrop
|
|
||||||
|
|
||||||
# convert country to countrycode as in ISO3
|
# convert country to countrycode as in ISO3
|
||||||
iso3countrycode () {
|
iso3countrycode () {
|
||||||
|
@ -103,17 +124,38 @@ testiso3 () {
|
||||||
testcmp "CHE" "iso3countrycode" "Schweiz"
|
testcmp "CHE" "iso3countrycode" "Schweiz"
|
||||||
testcmp "" "iso3countrycode" "Simbabwe" # should fail
|
testcmp "" "iso3countrycode" "Simbabwe" # should fail
|
||||||
}
|
}
|
||||||
testiso3
|
|
||||||
exit 0;
|
|
||||||
|
|
||||||
# target filename
|
# replace newline 0a with 0d 0a for dos version
|
||||||
tn="dhl-cp1252.csv"
|
# test with: echo | sed 's/$'"/`echo \\\r`/" | hexdump
|
||||||
|
convnl () {
|
||||||
|
if="$1"
|
||||||
|
of="$2"
|
||||||
|
shift 2
|
||||||
|
expect="0a0d" # hexdump does reverse the byte order
|
||||||
|
result=$(echo | sed 's/$'"/`echo \\\r`/" | hexdump |head -1|cut -d" " -f2)
|
||||||
|
if test $expect = $result ; then
|
||||||
|
sed -e 's/$'"/`echo \\\r`/" "$if" > "$of"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
testconvnl () {
|
||||||
|
testcmp "$tn2" "convnl" "$tn1" "$tn2" && rm "$tn2"
|
||||||
|
}
|
||||||
|
|
||||||
|
runtests () {
|
||||||
|
testchklength
|
||||||
|
teststringcrop
|
||||||
|
testiso3
|
||||||
|
testconvnl
|
||||||
|
}
|
||||||
|
runtests
|
||||||
|
|
||||||
# todo: download file (its UTF-8 encoded)
|
# todo: download file (its UTF-8 encoded)
|
||||||
|
|
||||||
fn="dhl.csv"
|
fn="dhl.csv"
|
||||||
# backup
|
# backup
|
||||||
cp -f "${fn}" "${fn}.bak"
|
cp -f "$fn" "${fn}.bak"
|
||||||
|
|
||||||
|
exit 0;
|
||||||
|
|
||||||
# replace special spaces and hyphens
|
# 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"
|
sed -i -e 's/[\u00A0\u202F[:space:]]+/ /g' -e 's/[\u2010\u2011\u2012\u2013\u002D]+/-/g' -e 's/[\u00AD\uFEFF]+//g' "$fn"
|
||||||
|
|
Loading…
Reference in New Issue