BR='
'
+unescape() {
+ local unescape='s;(^(\\\\)*|[^\\](\\\\)*)\\n;\1\n;g; s;\\(.);\1;g'
+ if [ $# -eq 0 ]; then
+ sed -E "$unescape"
+ else
+ printf %s "$*" \
+ | sed -E "$unescape"
+ fi
+}
+
pdi_load() {
# normalise PDI file for processing with pdi_* functions
# functions in this library can only be applied to normalised data
# Usage example:
# data="$(pdi_load file.vcf)"
- sed -En '
+ sed -srn '
# === Read entire file into buffer ===
:X $bY; N; bX; :Y s;^.*$;\n&\n;;
# === Update obsolete LABEL property ===
s;\nLABEL((\;[A-Za-z0-9-]+|\;[A-Za-z0-9-]+=([^;,:"]+|"[^"]+")(,[^;,:"]+|,"[^"]+")*)*):(.*)\n;\nADR\1\;LABEL="\5":\n;g;
- p;' "$1"
+ p;' "$@"
}
pdi_count(){