#json #linux
#json #linux
Вопрос:
У меня есть следующий файл, каждая строка которого является JSON
форматом.
{"id": 123, "name": "Tom"}
{"id": 124, "name": "Jerry"}
{"id": 125, "name": "Ken"}
...
...# there are 200000 rows in this file
В некоторых строках JSON может быть неправильно сформирован. Может содержать либо символ новой строки, либо кавычки неправильно закрыты. Или могут быть другие причины.
Как я могу найти эти строки в Linux более эффективно, кроме ручной проверки построчно 200000 раз?
Комментарии:
1. Отредактируйте свой вопрос, чтобы показать точный текст сообщения об ошибке, которое вы получаете в данный момент. Удачи.
Ответ №1:
Вы можете перебирать строки файла и проверять их на достоверность с помощью jq
:
#!/bin/bash
linenum=1
while IFS="" read -r line
do
echo "$line" | jq > /dev/null 2>amp;1
if [ "$?" -ne 0 ]; then
echo "invalid json on line $linenum"
echo "$line"
fi
linenum=$((linenum 1))
done < data.txt