За исключением случаев, когда между кавычками могут быть экранированные кавычки и другие подобные хитрые вещи, я бы попробовал команду sed , чтобы отфильтровать ваш большой файл:
sed 's/^"[^"]*": "\([^"]*\)".*"\(.*\)"$/\1:\2/'
По сути, вы ищете две подгруппы \1
и \2
, содержащие нужные вам поля, и вы печатаете их, разделенные :
.
Если заголовок строки появляется буквально, регулярное выражение передается в качестве аргумента Для sed это менее уродливо:
sed 's/^"title": "\([^"]*\)".*"\(.*\)"$/\1:\2/'
Еще безопаснее, чтобы избежать побочных эффектов от случайных данных:
sed 's/^"title": "\([^"]*\)".*"rank": "\(.*\)"$/\1:\2/'