AFAIK : здесь не нужно экранировать. Однако, поскольку . не находится в диапазоне [0-9], шаблон [0-9]* не будет соответствовать десятичным числам, таким как 55.5 - вам нужно что-то вроде [0-9.]*, т.е. "/$name/s/:[0-9. ]*$/:$P/"
Я думаю, что проблема в том, что эти переменные находятся вне области видимости, так как они связаны внутри[]
. Я новичок в jq
, но следующий код, который дублирует код, кажется, дает вам правильный ответ:
. as $arr |
looparr($arr) |
.[0] as $str |
.[1] as $ed |
$arr |
del(.[$str:$ed+1])
+ [
. as $arr |
looparr($arr) |
.[0] as $str |
.[1] as $ed |
$arr[$str:$ed+1] |
join(" ")
]