한 줄에 여러 { } 사이의 텍스트를 텍스트 파일에 복사합니다.

한 줄에 여러 { } 사이의 텍스트를 텍스트 파일에 복사합니다.

다음을 통해 텍스트를 추출하는 솔루션이 필요합니다.

입력.txt

"description": "{A, 0}, {B, 1200}, {C, 543}",

(등)

이는 더 큰 JSON 파일에서 가져온 것입니다.

{
  "cover_path": "n/a",
  "description": "{A, 0}, {B, 1200}, {C, 543}",
  "duration": 541234,
  "title": "16.05.2013 - Title"
}

예상 출력:

A.txt

A, 0

B.txt

B, 1200

C.txt

C, 543

답변1

#! /usr/bin/env bash

description=$(cat "large.json" | jq -r ".description")
readarray -d "{" -t desc_array <<<"${description}"
for part in "${desc_array[@]}"; do
    [[ -z "${part}" ]] && continue
    part="${part/%$'\n'/}"
    part="${part/\}/}"
    part="${part// /}"
    part="${part/%,/}"
    IFS="," read -r basename content <<<"${part}"
    printf "%s, %s" "${basename}" "${content}" > "${basename}.txt"
done

관련 정보