Для пояснения, в поле примечаний нет обратной косой черты или n
.\n
- это способ JSON для кодирования буквального перевода строки, поэтому следует ожидать следующее значение:
Demo1
Demo2
Проблема, с которой вы столкнулись, заключается в том, что вы разбили значение на пробел и создали массив.К каждому значению можно получить доступ по индексу:
$ cat myscript
data='[{"id":1,"notes":"Demo1\nDemo2"}]'
value=($(printf '%s' "$data" | jq -r '.[].notes'))
echo "The first value was ${value[0]} and the second ${value[1]}"
$ bash myscript
The first value was Demo1 and the second Demo2
Чтобы вместо этого получить его в виде простой строки, удалите скобки из value=(..)
:
$ cat myscript2
data='[{"id":1,"notes":"Demo1\nDemo2"}]'
value=$(printf '%s' "$data" | jq -r '.[].notes')
echo "$value"
$ bash myscript2
Demo1
Demo2