Say I have a large file of JSON lines (more than 10k) like so:
{"type": "RECORD", "record": {"stream": "...", "data": {"ticketNumber": "12345"}}}
{"type": "RECORD", "record": {"stream": "...", "data": {"ticketNumber": "23456"}}}
{"type": "RECORD", "record": {"stream": "...", "data": {"ticketNumber": "33445"}}}
{"type": "RECORD", "record": {"stream": "...", "data": {"ticketNumber": "24656"}}}
{"type": "RECORD", "record": {"stream": "...", "data": {"ticketNumber": "15523"}}}
{"type": "RECORD", "record": {"stream": "...", "data": {"ticketNumber": "30030"}}}
I am trying to use jq to extract only the records whose ticketNumbers are "24656" and "33445". I've tried the following command
cat datafile.json | jq '.record.data | select(.ticketNumber | map(in(["24656", "33445"])))'
What have I done wrong here?
But all I get are errors saying "error at .... cannot iterate over string ('...')").