![한 줄에 여러 { } 사이의 텍스트를 텍스트 파일에 복사합니다.](https://linux55.com/image/214775/%ED%95%9C%20%EC%A4%84%EC%97%90%20%EC%97%AC%EB%9F%AC%20%7B%20%7D%20%EC%82%AC%EC%9D%B4%EC%9D%98%20%ED%85%8D%EC%8A%A4%ED%8A%B8%EB%A5%BC%20%ED%85%8D%EC%8A%A4%ED%8A%B8%20%ED%8C%8C%EC%9D%BC%EC%97%90%20%EB%B3%B5%EC%82%AC%ED%95%A9%EB%8B%88%EB%8B%A4..png)
다음을 통해 텍스트를 추출하는 솔루션이 필요합니다.
입력.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