diff options
Diffstat (limited to 'shell_utils.sh')
-rw-r--r-- | shell_utils.sh | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/shell_utils.sh b/shell_utils.sh index 30dfead..5fd24ff 100644 --- a/shell_utils.sh +++ b/shell_utils.sh @@ -43,3 +43,16 @@ map_del() { sanitize() { echo "$1" | tr /.- _ } + +escape_regex_special() { + ech "$1" | sed 's/\([]\.*?{},()[-]\)/\\\1/g' +} + +# Note: We don't actually parse JSON. We extract needed keys with sed regexes +# which does not work in the general case but is sufficient for now. +get_json_key() { + local KEY_REG="$(escape_regex_special "$1")" + ech "$2" | + sed 's/\(.*"'"$KEY_REG"'"[[:space:]]*:[[:space:]]*"\([^"]*\)"\)\?.*/\2/' | + grep . | head -1 +} |