Что пошло не так, так это место запятой в первом grep
:
grep -Eo 'id.\:.[^"]+"\,"' inputfile
Вам нужно сделать что-то дополнительное для получения нужной подстроки.
grep -Eo 'id.\:.[^"]+"\,"' inputfile | cut -d: -f2 | grep -Eo '[^",]+'
Я использовал cut
, это было бы легко для вашего примера ввода.
cut -d'"' -f4 < inputfile
У вас есть альтернативы, такие как jq
или
sed -r 's/\{"id":"([^"]*).*/\1/' inputfile
или с использованием awk (решение теперь похоже на cut
, но его можно легко изменить)
awk -F'"' '{print $4}' inputfile