From 8ed3dcb534324d8db54bac799eeea01b8a0a7cbb Mon Sep 17 00:00:00 2001 From: P. J. McDermott Date: Wed, 08 Feb 2017 20:39:37 -0500 Subject: eshtrans/split.sh: New experimental file --- (limited to 'eshtrans') diff --git a/eshtrans/split.sh b/eshtrans/split.sh new file mode 100644 index 0000000..bfc51cd --- /dev/null +++ b/eshtrans/split.sh @@ -0,0 +1,48 @@ +set -u + +buf="Hello, 'world'!" + +old() +{ + eval "$(printf '%s' "${buf}" | awk -v FS='' -v j=0 \ + -v squote="'" -v esc_squote="'\\\\''" ' + { + for (i = 1; i <= NF; ++i) { + sub(squote, esc_squote, $i); + printf("lbufv_%d='\''%s'\''\n", j++, $i); + }; + printf("lbufv_%d='\''\n'\''\n", j++); + } + ')" +} + +new() +{ + eval "$(printf '%s' "${buf}" | awk -v FS='' -v j=0 \ + -v squote="'" -v esc_squote="'\\\\''" ' + { + for (i = 1; i <= NF; ++i) { + sub(squote, esc_squote, $i); + printf("lbufv_%d=" squote "%s" squote "\n", + j++, $i); + }; + printf("lbufv_%d=" squote "\n" squote "\n", j++); + } + ')" +} + +print_and_clear() +{ + i=0 + while [ ${i} -le ${#buf} ]; do + c=$(eval "printf '%sx' \"\${lbufv_${i}}\"") + eval "lbufv_${i}=" + printf 'i: %2d, c: "%s"\n' ${i} "${c%x}" + i=$((${i} + 1)) + done +} + +old +print_and_clear +new +print_and_clear -- cgit v0.9.1