Refactor strip_quote to use bash replacements instead of sed

This commit is contained in:
Dan Church 2021-12-10 19:09:59 -06:00
parent 6da72bcfd7
commit 1944eb8787
No known key found for this signature in database
GPG Key ID: EA2BF379CD2CDBD0
1 changed files with 12 additions and 11 deletions

View File

@ -853,17 +853,18 @@ is_number() {
return 1
}
strip_quote() {
# remove color codes (see https://www.commandlinefu.com/commands/view/3584/remove-color-codes-special-characters-with-sed)
# \', leading and all trailing spaces
sed -e "s,$(echo -e "\033")\[[0-9;]*[a-zA-Z],,g" \
-e "s/\"/\\'/g" \
-e 's/^ *//g' \
-e 's/ *$//g' <<< "$1"
}
# " deconfuse vim\'s syntax highlighting ;-)
strip_quote() (
# Note: parens in function definition here force this into a separate
# shell, preventing extglob from affecting the code outside this function
shopt -s extglob
# Remove color codes
OUT=${1//$'\e['*([0-9;])[a-zA-Z]}
# Replace quotes
OUT=${OUT//\"/\'}
strip_leading_space "$(
strip_trailing_space "$OUT"
)"
)
is_ipv4addr() {
local octet="(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])"